假设:
p1 = (-10, 2, -0.01)
p2 = (-20, -2, -0.03)
我试图在3D矩形中表示这些点,其中我有3D矩形的宽度,高度和深度。这里,投影类型是正交的,它是笛卡尔坐标系统
通过将p1和p2转换为2D,我想绘制线条。
知道怎么办?
这是图片
答案 0 :(得分:2)
您要找的是orthographic projection。理解起来比一般perspective projection更简单,尽管你也可能想要研究它。
理解正交投影的直观方法:三维坐标系中的每个轴(例如,示例中的H轴,W轴和D轴)都有一个2d 方向向量屏幕坐标(即用于绘图的(x,y)
坐标):
let: H-axis direction vector = (hx, hy)
W-axis direction vector = (wx, wy)
D-axis direction vector = (dx, dy)
and: origin screen position = (ox, oy)
要了解这些方向向量的含义:如果绘制H轴,并用(H=0, H=1, H=2, ...)
的tics标记,那么hx
是连续抽动之间x坐标的差异, hy
是连续抽搐之间y坐标的差异。因此,您可以通过播放方向向量来更改任何轴的方向和比例(独立于其他轴!)。
选择原点和方向矢量后,您可以将屏幕坐标(x, y)
计算为:
x = H * hx + W * wx + D * dx + ox
y = H * hy + W * wy + D * dy + oy
此公式的高度规则乘法/加法结构基本上是matrix multiplication:
[ x y ] = [ H W D 1 ] * [ hx hy ]
[ wx wy ]
[ dx dy ]
[ ox oy ]
答案 1 :(得分:0)
我使用了以下几点,因为它们更容易使用:
p1 = (50, 100, 0)
p2 = (200, 250, 50)
要创建3D矩形(立方体),您需要完成以下几个步骤:
p1
,水平坐标为p2
。2D 3D
x = x + z
y = y - z
我不知道ActionScript,但这里有一个可以帮助你的概念证明:http://jsfiddle.net/3NLVe/。