|
|
1
8
将该点转换为与矩形对齐的坐标框,然后问题就变成了轴对齐和琐碎的问题。 如果矩形由以下4个点组成:
然后得到矩形的“x轴”和“y轴”,如下所示:
然后使用x和y作为列构造旋转矩阵:
如果使用三维坐标,我们需要一个Z轴:
从世界坐标到矩形轴对齐坐标的变换矩阵将变为:
这里我们选择了左下角C作为本地原点。”r^t“是r转置的。0^t“是一个二维或三维行向量,用零填充。1只是一个。注意,这只是简单的矩形到世界变换的倒数,即
我们可以用t将点转换成轴对齐的坐标。记住用尾随1填充p,因为t是一个齐次矩阵。
如果使用的是三维坐标,请注意上面的内容忽略了转换点tp的局部z值。即使p不在矩形的平面上,上面的行为就好像它被投影到了矩形的表面上。如果要检查共面性,只需事先执行以下操作:
|
|
|
2
2
I think this might answer your question
|
|
|
3
0
要使其特定于OpenGL,请执行以下操作: 我想你的二维矩形是屏幕坐标系! 第一:
从三维到屏幕坐标。 那么:诺亚的建议。 只有当你的观点已经是2d;)时才开枪。 |
|
|
4
0
对于非轴对齐的矩形,使用与一般多边形相同的算法:多边形中的点测试: 想象一条光线从测试点指向右。测试多边形中的每一条线是否穿过射线。如果偶数条线穿过射线,则该点位于多边形的外部。如果奇数条线穿过射线,则该点位于多边形内部。 在矩形的情况下,零到两条线之间的线将穿过射线。 如果一条线接触到光线但没有穿过它,则结果是不明确的。因此,在你的计算中,假设光线是一个无限小的量,比它的y坐标高,所以它是 不可能的 让一条线接触光线而不穿过它。 考虑到测试点(x,y)和线(x1,y1,x2,y2),测试一条线是否穿过射线非常简单。在不丧失一般性的前提下,假设y1<y2。然后
|
|
5
0
很容易测试一个点是否位于三角形中,所以可以将矩形拆分为两个三角形并测试这些三角形。参见 http://www.blackpawn.com/texts/pointinpoly/default.html |
|
|
6
0
四边形点的一般检验就足够了。四元被定义为一系列有序的点。顺时针和逆时针旋转:
|
|
|
user20003920 · 如何对x y数据进行降采样? 2 年前 |
|
|
John Marston · 如何创建三个角度相等的三维矢量? 2 年前 |
|
|
Swike · 如何在matplotlib中为重叠的圆上色? 3 年前 |
|
|
For · 如何使用c++中的=运算符分别分配复变量的实部和虚部? 3 年前 |
|
|
ryanx · html中的长lat标识符 3 年前 |
|
|
hosoo · 如何在python中找到平面方程 3 年前 |
|
|
Georgia Nissen · 检查两个列表的圆重叠 3 年前 |
|
|
wzl · 如何使用POI绘制圆(而不是椭圆) 3 年前 |