0
나는 직선이있는 xy 플롯을 가지고 있습니다. mouseX 및 mouseY 값을 사용하여 선을 드래그 할 수 있지만 커브에 대해이 작업을 수행하려고합니다.가공에서 커브를 끌는 방법
먼저 점에 대한 좌표 만있는 경우 어떻게 곡선을 만들고 어떻게 끌 수 있습니까?
나는 직선이있는 xy 플롯을 가지고 있습니다. mouseX 및 mouseY 값을 사용하여 선을 드래그 할 수 있지만 커브에 대해이 작업을 수행하려고합니다.가공에서 커브를 끌는 방법
먼저 점에 대한 좌표 만있는 경우 어떻게 곡선을 만들고 어떻게 끌 수 있습니까?
@Petros에 의해 언급 된 첫 번째 읽기 링크 다음 제어 포인트에 대한 좌표를 계산하여 줄에 놓아야합니다. 그런 다음 드래그 포인트에 대한 마우스 이벤트를 구현해야합니다. 이 기본 예에서 영감을 얻을 수 있습니다.
float[] p = { 50, 100, 80, 100, 150, 100, 180, 100 };
int point = 0;
boolean locked = false;
void setup() {
size(300, 200);
smooth();
}
void draw() {
background(255);
stroke(0);
noFill();
//Here you can just change from bazier to spline curve
//curve(p[0], p[1], p[2], p[3], p[4], p[5], p[6], p[7]);
bezier(p[0], p[1], p[2], p[3], p[4], p[5], p[6], p[7]);
noStroke();
fill(255, 0, 0);
ellipse(p[0], p[1], 3, 3);
ellipse(p[6], p[7], 3, 3);
fill(0, 0, 255, 192);
ellipse(p[2], p[3], 3, 3);
ellipse(p[4], p[5], 3, 3);
}
void mousePressed() {
if(overPoint(mouseX, mouseY)) {
locked = true;
} else {
locked = false;
}
}
void mouseDragged() {
if(locked) {
p[point] = mouseX;
p[point+1] = mouseY;
}
}
void mouseReleased() {
locked = false;
}
boolean overPoint(float x, float y){
for(point = 0; point < 7; point += 2){
if(p[point] + 2 > x && p[point] - 2 < x){
if(p[point+1] + 2 > y && p[point+1] - 2 < y){
return true;
}
}
}
return false;
}
어떤 프레임 워크인가? – MadProgrammer
http://processing.org/ Java를 기반으로 한 처리 – gizgok
http://processing.org/tutorials/curves/ –