从直线和角度计算3D点的坐标

时间:2020-08-12 15:49:29

标签: math 3d

enter image description here

基本上,我想从某个已知的线AB中生成一个随机点C,以便:

  • AC = AB
  • CAB角度= 45度

由此可以计算出BC长度和ABC角,但我无法走得更远。

有什么帮助或建议吗?

1 个答案:

答案 0 :(得分:0)

使用复数

对于点P(x,y),请指定p = x + i y相关的复数。

以角度t和中心O(0,0)旋转会变成乘以复数exp(i t) = cos(i t) + i sin(i t)

t = 45°=π/ 4的情况下,得出复数r = exp(i π/4) = (sqrt(2)/2)(1+i)

在应用以t为中心的旋转之前,可以减去A来推断角度为a且中心为0的旋转,然后再次添加a

如果通过C角和B中心的旋转,tA的图像,则:

c = r * (b - a) + a

如何执行复数乘法?请注意:

(x1 + i y1)(x2 + i y2) = x1 x2 + i^2 y1 y2 + i x1 y2 + i y1 x2
                       = (x1 x2 - y1 y2) + i (x1 y2 + y1 x2)

我让您将前面的公式与a = xa + i yab = xb + i ybc = xc + i ycr = xr + i yr = sqrt(2)/2 + i sqrt(2)/2一起应用:

xc = ???
yc = ???

使用矩阵

按列向量表示点。

以角度t和中心O(0,0)旋转的旋转乘以矩阵:

R = (cos(t)  -sin(t))
    (sin(t)   cos(t))

同样,您需要计算C = R (B-A) + A

如何执行矩阵乘法?

(s  v) (x) = (s x + v y)
(u  w) (y)   (u x + w y)

C的公式与复数相同。

相关问题