やりたいこと
「真ん中からの角度だけ指定して、そこの座標を出したい」
・角度は数値で持ってるのに、それを表現できない
・時計とかをデザインしたい場合、角度の方が直感的に分かりやすかったりする
やったこと
子供のころ数学でやったように、0°なら円の右側、90°なら真上という感じで角度に応じて座標を決める
angle
に好きな角度(数値)を設定することができる
radians()
とcos()
、sin()
を使って角度を座標に変換する
- 角度を400°にした場合は360を引いて40°のところに座標が決まる
- このプログラムでは角度に応じて左周りであり、角度をマイナスに設定すると右周りになる
color BG;
void setup() {
size(600, 600);
colorMode(HSB, 360, 100, 100);
BG = color(0, 0, 5);
background(BG);
noStroke();
frameRate(30);
}
void draw() {
int angle;
float x;
float y;
translate(width/2, height/2);
pushMatrix();
// 補助線
noStroke();
fill(60, 100, 100);
ellipse(0, 0, 10, 10);
// 中心点
stroke(200, 0, 100);
noFill();
ellipse(0, 0, 400, 400);
// 角度を座標に変換する
angle = 60;
x = cos(radians(angle));
y = -1 * sin(radians(angle));
translate(x * 200, y * 200); //適当に値を大きくする
noStroke();
fill(60, 100, 100);
ellipse(0, 0, 20, 20);
popMatrix();
}
angle=60
で設定するとこんな感じになる