求助
processing吧
全部回复
仅看楼主
level 3
1504490423ace 楼主
s = 2 * dist(1, 0, pow(2, a*l) * cos(l), pow(2, a*l) * sin(l)) / (1 - pow(2, a*l));
}
是什么意思?
2014年10月22日 15点10分 1
level 7
dist是两点距离函数,pow是指数函数,第一个参数是底数
2014年10月22日 15点10分 2
万分感谢!我可以 把完整代码发过来,给详细解释一下行吗!
2014年10月23日 02点10分
回复 1504490423ace :
2014年10月23日 02点10分
level 4
pow(2, a*l) ---- a×I再平方
cos(I) ---- 余弦函数
sin(I) ---- 正弦函数
dist(1, 0, pow(2, a*l) * cos(l), pow(2, a*l) * sin(l)) ---- 坐标上两点 (1, 0)和 pow(2, a*l) * (cos(l), pow(2, a*l) * sin(l)) 的距离
2014年10月22日 16点10分 3
懂了!我是新手,thanks!
2014年10月23日 02点10分
level 3
1504490423ace 楼主
String st = "Polar: r = 200 * sin( 4 / 13 * θ)";
int l = 500;
PVector p0 = new PVector(l / 2, l / 2);
float theta = 2*PI;
color cl = #E61C64;
int value;
void setup(){
smooth();
size(l, l);
background(255);
fill(0, 102, 153);
text(st, 25, l-25);
line(0, l / 2, l, l / 2);
line(l / 2, 0, l / 2, l);
strokeWeight(2);
}
void draw(){
float r = 200 * sin(theta / 13 * 4);
PVector p = PVector.add(p0, new PVector(r * cos(theta), - r * sin(theta)));
stroke(cl, 25);
line(l / 2, l / 2, p.x, p.y);
stroke(cl);
point(p.x, p.y);
theta *= (1 + 5 / (500 + abs(r * theta)));
noStroke();
fill(255);
rect(l / 2 + 25, l-35, 100, 10);
fill(0, 102, 153);
text("θ = "+theta, l / 2 + 25, l-25);
}
void mousePressed(){
if(value == 0){
noLoop();
value = 1;
} else {
loop();
value = 0;
}
}
2014年10月23日 02点10分 4
level 3
1504490423ace 楼主
解释一下!谢谢
2014年10月23日 02点10分 5
level 4
line(0, l / 2, l, l / 2);
line(l / 2, 0, l / 2, l); // 在窗口中心画垂直的十字线,类似于X,Y轴,交叉点是 p0
float r = 200 * sin(theta / 13 * 4);
PVector p = PVector.add(p0, new PVector(r * cos(theta), - r * sin(theta))); // 从十字线交点p0,加上一个新的向量,长度为r,角度-theta
line(l / 2, l / 2, p.x, p.y); // (l/2, l/2)就是p0, 是十字线交叉点,即从p0到p划线
theta *= (1 + 5 / (500 + abs(r * theta))); // theta每次循环变一变
2014年10月23日 06点10分 6
万分感谢!!膜拜[呵呵]
2014年10月23日 07点10分
可以加你QQ吗?帮个忙!
2014年10月30日 06点10分
回复 1504490423ace :没QQ...
2014年10月30日 14点10分
1