Lar*_*ara 1 algorithm math linear-algebra graphic graph-algorithm
对不起我的语言,因为英语是我的第二语言.
我试图将直线转换为称为Koch曲线的分形.给出了直线的2个点,然后我需要创建Koch曲线,其中我将线分成3段,然后使第二段成为等边三角形.见http://www.tgmdev.be/curvevonkoch.php.
到目前为止,我们将直线转换为4个相等的段,我需要弄清楚Koch曲线的所有坐标.
当2点的y坐标相同时,我想到了一条直线,它给了我水平线.如果是这样,我可以通过将第二个半段除以右三角形的cos(60)来找出等边三角形的3个点.如下:http: //www.themathpage.com/atrig/30-60-90-triangle.htm
我的问题是当直线是对角线时如何找到所有坐标,例如a(200,100),b(400,600)或a(400,500),b(100,500).
如果您的基本段是AB,具有A(Ax,Ay)和B(Bx,By),则4个子段将是如下定义的AP,PQ,QR,RB.
首先定义两个相同长度的正交向量:
U(Bx-Ax,By-Ay) and
V(Ay-By,Bx-Ax)
Run Code Online (Sandbox Code Playgroud)
然后点:
P=A+(1/3)*U
Q=A+(1/2)*U+(sqrt(3)/6)*V
R=A+(2/3)*U
Run Code Online (Sandbox Code Playgroud)
点+向量=点表示法与翻译类似.
A(100,100)和B(400,100)的示例:
U(300,0)
V(0,300)
P = (100,100) + (1/3)*(300,0) = (200,100)
Q = (100,100) + (1/2)*(300,0) + (sqrt(3)/6)*(0,300) = (250,186)
R = (100,100) + (2/3)*(300,0) = (300,100)
Run Code Online (Sandbox Code Playgroud)