0
我正在C#中製作一個程序,它將旋轉由「+」製成的rhombs,但我不知道如何繪製它們。我試圖自己輸入繪圖方法,但是我卡住了,我只是不知道如何繪製它。我想保持代碼儘可能簡單,沒有任何位圖或圖形。如果有人會想出繪圖方法,我會非常感激。 我試圖通過在循環中找到中點之間的點來繪製它,但它不能很好地工作,所以有人可以幫助我嗎? PUNKT =點如何繪製旋轉的菱形?
class romb
{
private punkt p_up { get; set; }
private punkt p_left { get; set; }
private punkt p_right { get; set; }
private punkt p_down { get; set; }
private void MoveOneFrame()
{
punkt pivot = new punkt(((this.p_left.Get_x() + this.p_right.Get_x())/2), ((this.p_left.Get_y() + this.p_right.Get_y())/2));
this.p_up = Rotate(p_up, pivot, 8);
this.p_down = Rotate(p_down, pivot, 8);
this.p_left = Rotate(p_left, pivot, 8);
this.p_right = Rotate(p_right, pivot, 8);
}
private static punkt Rotate(punkt point, punkt pivot, double angleDegree)
{
double angle = angleDegree * Math.PI/180;
double cos = Math.Cos(angle);
double sin = Math.Sin(angle);
int dx = point.Get_x() - pivot.Get_x();
int dy = point.Get_y() - pivot.Get_y();
double x = cos * dx - sin * dy + pivot.Get_x();
double y = sin * dx + cos * dy + pivot.Get_y();
punkt rotated = new punkt((int)Math.Round(x), (int)Math.Round(y));
return rotated;
}
}
輸出: - 而且每個菱形應本身繞樞軸(其中心)
+
+ +
+ +
+ +
+ +
+ +
+ + +
+ + + +
+ + + +
+ + + +
+ + + +
+ + + +
+ + +
+ + +
+ + + +
+ + + +
+ + + +
+ + + +
+ + +
+ +
+ +
+ +
+ +
+ +
+ +
+
你能告訴我們輸出結果是什麼樣子嗎?或者它應該看起來像什麼? –
'draw()'函數/方法在哪裏? – heltonbiker
沒有在這裏添加它,因爲它在旋轉後效果不好。但我可以添加它,如果你需要它 – Dreik