【发布时间】:2014-08-20 19:59:28
【问题描述】:
我已经使用 vertex() 函数在处理中创建了一个多边形
现在我想滚动这个多边形,如下图 ..link 所示。请帮我。
void setup() {
size(400, 400);
}
float angle=0, yl, dx=0;
int N=4, r=50;
void draw() {
background(-1);
if (left) dx-=1;
if (right) dx+=1;
if (mousePressed==true)N = (int)map(mouseX, 0, width, 3, 25);
translate(width>>1, height>>1);
line(-width/2, 0, width/2, 0);
float innerAngle = PI-TWO_PI/N;
translate(0, -r);
rotate(PI/2);
//------------------------------------------
float theta = acos(dx/r);
float dy = r*sin(theta);
//float dx = r*cos(theta);
//------------------------------------------
pushMatrix();
translate(dx, dy);
rotate(PI/2-theta);
polygon(N, r);
popMatrix();
}
void polygon(int edges, int r) {
noFill();
beginShape();
for (int i=0; i<edges; i++) {
float x = r*cos(i*TWO_PI/edges);
float y = r*sin(i*TWO_PI/edges);
line(0, 0, x, y);
vertex(x, y);
pushStyle();
fill(0);
text(i+1, x, y);
popStyle();
}
endShape(CLOSE);
ellipse(0, 0, 2, 2);
}
boolean right=false, left=false;
void keyPressed() {
if (key==CODED) {
if (keyCode == LEFT) {
left=true;
}
if (keyCode == RIGHT) {
right=true;
}
}
}
void keyReleased() {
left=false;
right=false;
}
【问题讨论】:
-
你的问题是什么?
-
我无法思考如何让我的多边形滚动并一起移动,就像这里 tube.geogebra.org/student/m2874
标签: processing polygon