前提・実現したいこと
本来のアナログ時計のように時針を経過時間(分)に応じて動くようにしたいのですがどうしても実装方法が思いつきません
ご教授お願いいたします
該当のソースコード
function setup() {
createCanvas(600, 600);
frameRate(1);
}
//アナログ時計
function draw() {
background(50);
translate(width / 2, height / 2);
let s = second() / 60 * TWO_PI;
let m = minute() / 60 * TWO_PI;
let h = hour() / 12 * TWO_PI;
//外枠
fill(255);
noStroke();
circle(0,0,450);
//内円
fill(50);
noStroke();
circle(0,0,440);
//文字盤
push();
for (let i = 0; i < 12; i++) {
rotate(TWO_PI / 12);
noStroke();
fill("white");
circle(0, -185, 32);
}
pop();
//時針
strokeWeight(5); draw_hands(100, h);
//分針
strokeWeight(3); draw_hands(125, m);
//秒針
strokeWeight(1); draw_hands(150, s);
//デジタル時計
digital_Time(0,0);
}
function draw_hands(len, angle) {
let x = len * sin(angle);
let y = len * - cos(angle);
stroke(255,255,255);
line(0, 0, x, y);
}
//デジタル時計
function digital_Time(x,y) {
noStroke();
fill(random(150,200));
textSize(random(14, 22));
textAlign(CENTER);
//translateにより座標(0,0)がcanvasの中心にある
text(hour() + ':' + minute() + ':' + second(),
//±160はtextの座標が中心にあるためはみ出し防止でCanvasのxy座標より内側160pxで表示するため
random(width-(width1.5)+160,(width/2)-160),
random(height-(height1.5)+160,(height/2)-160 ));
}
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/11/05 05:27