LoginSignup
2
2

More than 5 years have passed since last update.

processingで中心からの角度を座標に変換したい

Last updated at Posted at 2016-10-29

やりたいこと

「真ん中からの角度だけ指定して、そこの座標を出したい」

・角度は数値で持ってるのに、それを表現できない
・時計とかをデザインしたい場合、角度の方が直感的に分かりやすかったりする

やったこと

子供のころ数学でやったように、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で設定するとこんな感じになる

60度.png

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2