我有點卡在試圖旋轉三角形圖形。使用線條集合旋轉三角形
所以我想旋轉由線組成的整個三角形。我有兩個班級,一個Line班級創建一個單行。還有一個三角形類,它通過組合所有的線來創建所有的三角形。首先,下面是我的Line類,它實現了一個名爲Curve的接口。曲線包含繪製,旋轉,平移等的定義。請注意,它只爲我的問題添加了相關功能。所以在我的旋轉功能中,問題行(X2,Y2)的終點被旋轉。我不知道如果我在三角類還實現了曲線類,我所有的行添加到我的全球ArrayList和旋轉,所有的人都在我的旋轉功能的公式是正確實現
public class Line implements Curve {
double x1Point;
double y1Point;
double x2Point;
double y2Point;
public Line(double x1, double y1, double x2, double y2){
this.x1Point = x1;
this.y1Point = y1;
this.x2Point = x2;
this.y2Point = y2;
}
public void rotate(double degrees) {
x2Point = ((double)(x1Point * Math.cos(degrees * (Math.PI/180)))) - ((double)(y1Point * Math.sin(degrees * (Math.PI/180))));
y2Point = ((double)(x1Point * Math.cos(degrees * (Math.PI/180)))) + ((double)(y1Point * Math.sin(degrees * (Math.PI/180))));
}
然後。請注意曲線在屏幕上正確繪製。我沒有添加繪製方法,因爲它與我的問題無關
public class Triangle implements Curve {
ArrayList<Curve> list = new ArrayList<Curve>();
public void add(Line line){
list.add(line);
}
public void rotate(double degrees) {
for(Curve c: list){
c.rotate(degrees);
}
}
因此,我對三角形的旋轉不正確。我不確定問題出在哪裏。它可以在旋轉個別線的公式中,但我不確定。希望有人能提供有價值的反饋!
謝謝!
我不應該將每條線翻譯成原點嗎?所以這將是理想的更改我的線類內的旋轉功能,以翻譯成原點,旋轉,然後翻譯回來,但我不知道三角形的中心。 – Htlcs
在「三角形」課上做這個。 – Christian