void drawClock(String config) { String configs[] = split(config, ','); int x = width / 2, y = height / 2; int size = min(width, height); float hour = 0; boolean isHour = false; int hourColor = #000000; float minute = 0; boolean isMinute = false; int minuteColor = #000000; float sec = 0; boolean isSec = false; int secColor = #000000; for (int i = 0; i < configs.length; i++) { if (configs[i] == null) { continue; } String[] val = split(configs[i], ' '); if (val.length < 1) { continue; } if (val[0] == null) { continue; } if (val.length < 2) { continue; } if (val[1] == null) { continue; } if (val[0].equals("h")) { hour = parseFloat(val[1]); isHour = true; continue; } if (val[0].equals("m")) { minute = parseFloat(val[1]); isMinute = true; continue; } if (val[0].equals("s")) { sec = parseFloat(val[1]); isSec = true; continue; } if (val[0].equals("hc")) { hourColor = parseInt(val[1]); continue; } if (val[0].equals("mc")) { minuteColor = parseInt(val[1]); continue; } if (val[0].equals("sc")) { secColor = parseInt(val[1]); continue; } if (val[0].equals("size")) { size = parseInt(val[1]); continue; } if (val[0].equals("x")) { x = parseInt(val[1]); continue; } if (val[0].equals("y")) { y = parseInt(val[1]); continue; } } pushMatrix(); translate(x, y); noFill(); sec *= 6; minute *= 6; hour *= 30; hour += minute / 12; minute += sec / 60; ellipse(0, 0, size, size); { float eSize = size * PI / 60 * 0.6; float len = size / 2 * 0.95; for (int i = 0; i < 60; i++) { float px = sin(radians(6 * i)) * len; float py = -cos(radians(6 * i)) * len; ellipse(px, py, eSize, eSize); } } if (isSec) { float len = size / 2 * 0.75; float px = sin(radians(sec)) * len; float py = -cos(radians(sec)) * len; stroke(secColor); line(px, py, 0, 0); line(-px * 0.25, -py * 0.25, 0, 0); } if (isMinute) { float len = size / 2 * 0.80; float px = sin(radians(minute)) * len; float py = -cos(radians(minute)) * len; stroke(minuteColor); line(px, py, 0, 0); line(-px * 0.25, -py * 0.25, 0, 0); } if (isHour) { float len = size / 2 * 0.60; float px = sin(radians(hour)) * len; float py = -cos(radians(hour)) * len; stroke(hourColor); line(px, py, 0, 0); line(-px * 0.25, -py * 0.25, 0, 0); } popMatrix(); }引数は文字列で渡します
時針 分針 秒針 の表示が可能です
試しに作っただけなので、あんまり使いやすくないですけども
0 件のコメント:
コメントを投稿