- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的目标是创建一个直观的 3D 操纵器来处理我的 3D 编辑器中显示的网格旋转,使用 Qt/QML 制作。
为此,当用户单击实体时,会在网格周围生成 3 个环面,代表用户可以操作的欧拉角。如果用户然后单击一个环面,我希望他能够通过拖动鼠标来旋转网格。用户似乎这样做的自然方式是在他们希望网格旋转的方向上围绕圆环拖动鼠标。
因此,我需要一种方法来了解用户如何旋转鼠标。我想到了一个方法:当用户点击圆环时,我检索圆环中心的位置。然后,我将这个世界位置转换为它的屏幕位置。然后,我监视鼠标光标与圆环中心之间的角度。这个角度的演变应该告诉我我需要的一切:如果角度顺时针增加,网格应该顺时针旋转,反之亦然。这个解决方案应该为我的应用程序产生足够好的结果,因为它不会依赖于相机的角度,或者只是非常小。
但是,我找不到使用 Qt 将世界位置转换为其屏幕位置的方法。我找到了函数 QVector3D::project(const QMatrix4x4 &modelView, const QMatrix4x4 &projection, const QRect &viewport)
,但它的文档非常稀缺,我找不到任何人使用它...我可能已经找到了为 projection
提供的内容参数(来自 QCamera 的 projectionMatrix
属性,这里是 https://doc.qt.io/qt-5/qml-qt3d-render-camera.html ),但就是这样。什么是modelView
?和 viewport
?是不是很简单QRect(0, 0, 1920, 1080)
?
如果有人有任何线索,那就太棒了,我在任何地方都找不到任何东西,我现在有点失去希望。或者也许是我的问题的另一个更简单的解决方案?请注意,用户还可以在网格周围自由移动相机,这会增加复杂性。
非常感谢您的时间,祝您有美好的一天!
最佳答案
是的,您应该能够使用上述功能从世界位置转换到屏幕位置。您对 projection
的看法是正确的争论。至于modelView
参数,你应该使用 viewMatrix
来自 QCamera 的属性,官方文档中没有,但它对我有用。 viewport
参数表示您正在投影的屏幕部分的尺寸。您可以使用 QRect(0, 0, 1920, 1080)
如果你使用全屏全高清投影,否则使用类似 QRect(QPoint(0, 0), view->size())
的东西,其中 view
是带有 3D 图像的 wigdet 或窗口。请注意,生成的屏幕位置将具有 y = 0
向下和正值在上面,这与通常的屏幕坐标相反。
关于c++ - 获取网格中心的屏幕位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59683854/
这个问题已经有答案了: 已关闭11 年前。 Possible Duplicate: How to align a to the middle of the page 这是一个简单的问题,应该有一个简
我想知道如何在屏幕中央的ListView中生成2个itens。 class _CategoriesState extends State { List categories = ["Anterio
我需要修复 UICollectionView 的一个小问题,当在 6s 设备尺寸上时,我得到如下布局: 但是,我想知道将它们居中以使其成为两条线的最佳方法是什么,或者我应该将它们缩小一点以便可以放置其
我尝试在 UIImageView 中居中 CAShapeLayer 但没有成功,我找到了解决方案,将其(CAShapeLayer)添加到 UIVIew,然后将 UIVIew 添加到 ImageView
一直在从线性布局和相对布局切换,因为我想实现图像的居中。 显示图片:
* { margin:0; padding:0; } /** General Style Info **/ body { background: #003d4c; co
我目前正在尝试修改我在 Wordpress 上的 Royal Slider 插件 (http://dimsemenov.com/plugins/royal-slider/) 我的目标是将所有标题的文本
我已经坚持了一段时间,因此简化了我的要求。当您单击标记时,信息窗口将打开,当用户缩放时,我希望该标记位于 map 的中心。这不起作用,但我认为它很接近: function bindInfoWindow
/* Linked Styles */ body { padding: 0 !important;
这个问题在这里已经有了答案: How do I center floated elements? (12 个答案) 关闭 7 年前。
这个问题在这里已经有了答案: Is there an equivalent to background-size: cover and contain for image elements? (1
我试图让我的页眉停留在页面的中间,不管我在什么窗口大小。 我试过使用 Bootstrap。 StackOverflow 还有这个 CSS。 .section-t
我有一个 1600 像素宽的页面。主要区域虽然只有 900 像素宽。我有一个导航应该固定在页面的中心(它是)。我的问题是当我打开页面时,页面固定在左侧而不是在打开时居中。当用户访问该网站时,我需要做什
我正在尝试找到 View 的中心。对于非旋转 View ,该值是正确的,但对于旋转 View ,它不正确,因为中心 (0,0) 正在旋转。在缩放的情况下,即使缩放后宽度和高度也保持不变 我正在使用以下
预期效果是将 Kartennummer 和 Passwort 集中。 这怎么可能? 我为此使用了一个自定义类: import 'package:flutter/material.dart'; impo
我管理着许多 Maven 项目。他们中的大多数部署到我们的内部 maven 存储库。现在我想开始向 Maven Central 发布一个项目。到目前为止,我有一个父 POM,它指定了我们内部存储库的
我试图锚定两个进展,但我看不到获得预期结果的方法。 我希望左边的进度条固定在左边,右边的条固定在中心固定(如下图所示) (下图显示调整大小的表格) 我尝试将控件放在具有各种 anchor 的停靠面板上
我正在玩 Angular 模态 ui 对话框。我想知道有什么方法可以让它居中?我发现了一个类似的问题: Twitter Bootstrap - Center Modal Dialog 但无法使其工作,
是否可以将值标签放置在条形上,使它们位于条形的中心? 如果我设置条形 align: "center",则条形上的标签将关闭且不居中。 $(function() { var d
http://www.asp.net/signalr/overview/signalr-20/getting-started-with-signalr-20/tutorial-signalr-20-s
我是一名优秀的程序员,十分优秀!