2013-03-12 72 views
1

對不起,我的語言是英語,因爲我的第二語言。查找Koch Curve的座標

我想將一條直線轉換成一個稱爲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

我的問題是如何找到所有的座標時挺直線是斜,例如(200,100),B(400,600)或(400,500),B(100,500)。

回答

5

如果您的基準片段是AB,A(Ax,Ay)和B(Bx,By),那麼4個子片段將爲如下定義的 AP,PQ,QR,RB。

首先定義兩個相同長度的正交向量:

U(Bx-Ax,By-Ay) and 
V(Ay-By,Bx-Ax) 

然後點:

P=A+(1/3)*U 
Q=A+(1/2)*U+(sqrt(3)/6)*V 
R=A+(2/3)*U 

點+矢量=點表示法類似於翻譯。

例如,用(100,100)和B(400100):

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) 
+0

謝謝您的回答。 – Lara 2013-03-14 17:07:18

+0

我無法通過你提供的公式得到這一點: 我認爲,A(100,100),B(400,100)然後U(300,0),V(0,300) 但我不能進一步說明這一點,你能解釋一下如何通過使用方程式來獲得點數 – Lara 2013-03-14 17:10:45

+0

在數據中增加了一個例子。 – 2013-03-14 17:37:57