我正在嘗試編寫一個顯示向量的類。如果我創建一個矢量對象,一切都按預期工作。在我的示例代碼中,在draw()
函數的幫助下繪製對象lin1
。創建第二個對象使類的功能不再工作
如果我現在創建第二個矢量對象,(不變)繪製函數不再做任何事情,即使對象本身沒有改變。反過來也是如此:第二個對象是唯一存在的對象,那麼它可以被繪製,但只有lin1
不存在。
有誰知道我的錯誤在哪裏?
vector lin;
vector lin2;
void setup()
{
size(500,500);
background(255);
cenX = width/2;
cenY = height/2;
noLoop();
}
void draw()
{
coordSys();
lin = new vector(0,0,100,100);
lin2 = new vector(0,0,-200,-200);
lin.draw();
lin2.draw();
lin.getAll();
}
class vector
{
float x1,y1,x2,y2;
float length;
float angle;
float gegenK, anK;
vector(float nx1, float ny1, float nx2, float ny2)
{
translate(cenX,cenY);
x1 = nx1; y1 = -ny1; x2 = nx2; y2 = -ny2;
strokeWeight(2);
// Gegenkathete
gegenK = ny2 - ny1;
// Ankathete
anK = x2 - x1;
// length and angle
length = sqrt(sq(anK) + sq(gegenK));
angle = winkel(gegenK, anK);
}
void draw()
{
stroke(0);
line(x1,y1,x2,y2);
}
}
}
有沒有原因你不要調用'lin2.getAll()'? – Ishnark
你可以向'stroke()'和'line()'顯示源代碼嗎? 'stroke(0)'做什麼? –
這些是處理內部功能。線條繪製線條,筆觸設置線條的顏色。 – user7948346