벡터를 표시하는 클래스를 작성하려고합니다. 하나의 벡터 객체를 만들면 모든 것이 의도 한대로 작동합니다. 예제 코드에서 객체 lin1
은 draw()
함수의 도움으로 그려집니다.두 번째 객체를 만들면 클래스의 함수가 더 이상 작동하지 않습니다.
이제는 두 번째 벡터 객체를 만들면 객체 자체는 변경되지 않더라도 (변경되지 않은) draw 함수가 더 이상 아무 것도하지 않습니다. 그것은 다른 방법으로 주위에 동일합니다 : 두 번째 객체가 유일하게 존재하고 그 다음 그려 질 수 있지만 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