4
我一直在試圖吸取更大的三角形的邊等邊三角形的邊繪製等邊三角形。第一個三角形是通過設置點A,B和C的單獨方法繪製的。到目前爲止,我剛剛開始使用兩側,我可以找到較小三角形的前兩個點,但我無法確定正確的公式爲第三。我嘗試刷新我對三角學的記憶,但我陷入了僵局。
float a =0;
Point p = new Point(pnlDisplay.Width/2 - (pnlDisplay.Width/2) /3, 200);
Triangle t = new Triangle(p, pnlDisplay.Width/3, 0);
drawEqTriangle(e, t);
Point p1 = new Point();
Point p2 = new Point();
Point p3 = new Point();
p1.X = Convert.ToInt32(A.X + t.size/3);
p1.Y = Convert.ToInt32(A.Y);
p2.X = Convert.ToInt32(A.X + (t.size - t.size/3));
p2.Y = Convert.ToInt32(A.Y);
//////////////////////////////
p3.X = Convert.ToInt32((A.X - t.size/3) * Math.Sin(a));
p3.Y = Convert.ToInt32((A.Y - t.size/3) * Math.Cos(a));
drawTriangle(e, p1, p2, p3);
p1.X = Convert.ToInt32((B.X - t.size/3 * Math.Cos(t.angle + Math.PI/3)));
p1.Y = Convert.ToInt32((B.Y + t.size/3 * Math.Sin(t.angle+ Math.PI/3)));
p2.X = Convert.ToInt32((B.X - (t.size - t.size/3) * Math.Cos(t.angle + Math.PI/3)));
p2.Y = Convert.ToInt32((B.Y + (t.size - t.size/3) * Math.Sin(t.angle + Math.PI/3)));
//////////////////////////////
p3.X = Convert.ToInt32((B.X - t.size/3) * Math.Cos(a));
p3.Y = Convert.ToInt32((B.Y - t.size/3) * Math.Tan(a));
drawTriangle(e, p1, p2, p3);
這可能是數學部分的問題,但我想我會先在這裏嘗試。我需要的是公式p3.X和p3.Y
任何幫助將不勝感激。
編輯:改變「a」浮動a = Convert.ToSingle(60 * Math.PI/180);
你的角度是0,這是正常的嗎? – Piou
嘗試用'float a = 60 * Math.PI/180;'並且爲了子三角點3用'+'替換'-':'p3.X = Convert.ToInt32((AX + t.size/3)* Math .Sin(a));'和'p3.Y = Convert.ToInt32((AY + t.size/3)* Math.Cos(a));'因爲圖像{0,0}是左上手畫布的一角。 – Piou
@Piou謝謝你,我會認爲 – Protium