如何使用处理相互以30度绘制线条?我已经阅读了2D-Transformation页面,但我不想旋转网格,我只想绘制彼此成30度的线条。我该怎么做?
我在下面附上一张示例图片,抱歉用油漆画出来很糟糕(不想使用加工),我该怎么办呢?
答案 0 :(得分:1)
使用简单的trig可能吗?
void setup() {
size(400, 400);
PVector center = new PVector(width/2, height/2);
for (int i = 360; i >= 180; i-=30) {
float x = center.x + cos(radians(i))*50;
float y = center.y + sin(radians(i))*50;
line(center.x, center.y, x, y);
}
}
答案 1 :(得分:0)
以下程序生成随机单位向量输入并返回输出向量,顺时针旋转 outputShift 弧度。如果你想逆时针旋转,只需使用负值。
PVector input, output;
float inputAngle, outputShift, radius;
void setup () {
size(500, 500);
load();
}
void draw () {
background(255);
translate(width/2, height/2);
ellipse (0, 0, radius*2, radius*2);
line(0, 0, input.x, input.y);
line(0, 0, output.x, output.y);
}
void load () {
input = PVector.random2D();
inputAngle = atan2(input.y, input.x);
outputShift = PI/6;
output = new PVector (
cos(inputAngle+outputShift),
sin(inputAngle+outputShift)
);
radius = 200;
input.setMag(radius);
output.setMag(radius);
}
void keyReleased () {
load();
}