計算頂部三角形座標方法:
1view code///2
///獲取頂三角形座標
3///
4///
外接圓半徑(頂點到中心的距離)
5///
n角星6
///左橫座標
7///
縱座標8
///又橫座標
9private
void getcoordinate(double r, int n, out
double x1, out
double y1, out
double
x2)10
17else
1822
double l = math.pi / 180; //
弧度單位
23double a = math.sin(360 / (2 * n) * l), //
多角芒星各角連中心分割所得的夾角的一半
24 b = math.sin(unitangle/2 * l), //
芒星內角銳角的一半
25 c = math.sin((180 - 360 / (2 * n) - unitangle/2) * l), //
芒星除了內銳角的其他內角與中心點連線的夾角
26 d = math.cos((360 / (2 * n)) *l);
27 x1 = (a * r * b) / c; //
正弦定理
28 y1 = (d * r * b) /c;
29 x2 = r - x1; //
x2與x1關於中心點垂線對稱,右移r個長度
30 x1 += r; //
右移r個長度
31 y1 -= r; //
下移r個長度
32//
取正數33 x1 = x1 < 0 ? x1 * (-1
) : x1;
34 y1 = y1 < 0 ? y1 * (-1
) : y1;
35 x2 = x2 < 0 ? x2 * (-1
) : x2;
36 }
1、畫空心正n角星
思路:通過計算得到頂部乙個三角形的座標,畫出三角形,再畫出三角形順時針旋轉一周的其他n-1個三角形。組合起來得到乙個偽的多角芒星。
1view code///2
///畫多角芒星,正多角星
3///
4///
外接圓半徑
5///
角數量6
///返回包含正多角星的canvas
7private canvas drawingpentacle(double r, intn)8
;12//重複n次畫出n個三角形斜邊
13for (int i = 1; i <= n; i++)
14,0 l, m 50,0 l,
", r, x1, y1, x2)));19}
20//
順時針旋轉
21 dv.transform = new rotatetransform(i * 360 / n, 50, 50
);22
23//
作為資源放到控制項中
24 rendertargetbitmap rtb = new rendertargetbitmap(100, 100, 0, 0
, pixelformats.default);
25rtb.render(dv);
26 image image = new image() ;
27canvas.children.add(image);28}
29return
canvas;
30 }
演算法生成N芒星
前面兩個影象生成演算法是 道教的太極八卦圖和佛教的卐和卍字圖。這一節整個洋氣的影象 芒星。但願我別召喚出什麼恐怖的禁忌,尤其今晚還是萬聖節之夜。平時看玄幻 經常讀到有關六芒星,七芒星,九芒星的技法。芒星是由幾個完全的等腰三角形 有時是正三角形 和乙個正多邊形組成的二維圖形。等腰三角形的個數與正多邊形...
演算法生成N芒星
前面兩個影象生成演算法是 道教的太極八卦圖和佛教的卐和卍字圖。這一節整個洋氣的影象 芒星。但願我別召喚出什麼恐怖的禁忌,尤其今晚還是萬聖節之夜。平時看玄幻 經常讀到有關六芒星,七芒星,九芒星的技法。芒星是由幾個完全的等腰三角形 有時是正三角形 和乙個正多邊形組成的二維圖形。等腰三角形的個數與正多邊形...
python中n角星畫法
import turtle import math n eval input 請輸入邊個數 l eval input 請輸入邊長 i 0 迴圈變數 if n 2 1 奇數 角星的畫法 while i n turtle.forward l turtle.left 180 180 n i 1 turtl...