°Ê²¼¤Ï±é½¬ÌäÂê2¤Î´ð¤Ë¤Ê¤ëÂè1²ó»ñÎÁ¤«¤é°úÍѤ·¤¿¡ÖÎý½¬: ¥¢¥Ë¥á¡¼¥·¥ç¥ó¤Ç¿§Áê´Ä¡×¤Î¥×¥í¥°¥é¥à¤Ç¤¢¤ë¡¥Á°²ó¤Ë°ú¤Â³¤¡¢´Ø¿ô¤òƳÆþ¤·¥×¥í¥°¥é¥à¤ò¸«¤ä¤¹¤¯¡¢¤Þ¤¿ºÆÍøÍѲÄǽ¤Ê¤è¤¦¤Ë²þÎɤ¹¤ë¡£
int r = 150; // ±ß¤ÎȾ·Â int theta; // ²óž³Ñ int dTheta = 5; // ²óž³Ñ¤ÎÁýʬ/ÅÀ float rad; // ²óž³Ñ int d = 8; // ÅÀ¤Îľ·Â float x, y; // ÅÀ¤ÎÃæ¿´ºÂɸ void setup() { size(400, 400); noStroke(); background(255, 255, 255); fill(0, 0, 0); theta = 0; colorMode(HSB, 360, 100, 100); // ¿§¤Î»ØÄê¤òHSB¤Ë // (¿§Áê 0-360, ºÌÅÙ 0-100, ÌÀÅÙ 0-100) } void draw() { rad = radians(theta); x = r * cos(rad); y = -r * sin(rad); fill(theta % 360, 100, 100); println("theta % 360 =" + (theta % 360)); println("x=" + x); println("y=" + y); ellipse(x + 200, y + 200, d, d); // ÂʱߤÎÃæ¿´¤Îx,yºÂɸ¡¢Éý¡¢¹â¤µ theta = theta + dTheta; }
ÌäÂê¤ò³Îǧ¤¹¤ë¤È¡¤¡Ö1¤Ä¤Î¾®¤µ¤Ê±ß¤òÉÁ¤¯¤È¤¤Ë¡¢¤½¤Î¾®¤µ¤Ê±ß¤ÎÃæ¿´¤ÎxºÂɸ¡¢yºÂɸ¡¢¿§Áê¤òµá¤á¤ë¤¬¡¢ ¤½¤Î¤½¤ì¤¾¤ì¤ò´Ø¿ô¤òÍѤ¤¤Æµá¤á¤ë¤è¤¦¤Ë¤·¤Ê¤µ¤¤¡£ ´Ø¿ô̾¤Ï pointX(), pointY(), pointHue() ¤È¤¹¤ë¡£ ŬÀڤʰú¿ô¡¢Ìá¤êÃͤȤ¹¤ë¤³¤È¡£¡×¤È¤¢¤ë¡¥
¾åµ¥×¥í¥°¥é¥à¤ÇxºÂɸ¡¤yºÂɸ¡¤¿§Áê¤òµá¤á¤Æ¤¤¤ë²Õ½ê¤Ï°Ê²¼¤Ç¤¢¤ë¡¥
x = r * cos(rad); //xºÂɸ¤ò·×»»(r * cos(rad))¤·¤ÆÊÑ¿ôx¤ËÂåÆþ¤¹¤ë y = -r * sin(rad); //yºÂɸ¤ò·×»»(-r * sin(rad))¤·¤ÆÊÑ¿ôy¤ËÂåÆþ¤¹¤ë fill(theta % 360, 100, 100); //¿§Áê¤ò·×»»(theta % 360)¤·¤Æfill´Ø¿ô¤ÎÂè1°ú¿ô¤Ë»ÈÍѤ¹¤ë
xºÂɸ¤Î·×»»¤òÎã¤Ë¤¹¤ë¤È¡¤º£xºÂɸ¤Î·×»»¤Ë»ÈÍѤµ¤ì¤Æ¤¤¤ë¥°¥í¡¼¥Ð¥ëÊÑ¿ô¤ÏȾ·Âr¤È³ÑÅÙrad¤Ç¤¢¤ë¡¥¤³¤ì¤é¤Ï´Ø¿ô²½¤¹¤ëºÝ¤Ë¤Ï°ú¿ô¤ÇÍ¿¤¨¤é¤ì¤ëɬÍפ¬¤¢¤ë¡Ê¤³¤ì¤«¤éºîÀ®¤¹¤ë´Ø¿ôpointXÆâ¤Ç¥°¥í¡¼¥Ð¥ëÊÑ¿ô¤Ç¤¢¤ëx¤Èrad¤ò»È¤Ã¤Æ¤·¤Þ¤¦¤È¡¤pointX´Ø¿ô¤À¤±¤ò¥³¥Ô¡¼¤·¤Æ¤â¾¤Î¥×¥í¥°¥é¥à¤Ë»ý¤Ã¤Æ¤¤¤Ã¤Æ¤âÆ°¤«¤Ê¤¤¤«¤é¡Ê¤«¤Ã¤³¤è¤¯¸À¤¨¤Ð¡¤´Ø¿ô¤ÎºÆÍøÍѤ¬¤Ç¤¤Ê¤¤¤«¤é¡Ë¡Ë¡¥
´Ø¿ô̾¤¬pointX¡¤°ú¿ô¤¬2¤Ä¡ÊȾ·Â¡¤³ÑÅÙ¡Ë»ØÄê¤Ç¤¤ë¤è¤¦¤¹¤ëɬÍפ¬¤¢¤ë¤³¤È¤«¤é¡¤pointX´Ø¿ô¤¬´°À®¤·¤¿¤È²¾Äꤹ¤ë¤È¡¤
x = r * cos(rad);
¤Ï
x = pointX(r, rad);
¤È¤Ê¤ë¡¥
¼¡¤Ë¼ÂºÝ¤ËpointX´Ø¿ô¤òºî¤ë¡¥´Ø¿ô̾¤ÏpointX¡¤°ú¿ô¤Ï2¤Äfloat·¿¤ò¼õ¤±¼è¤ë¤Î¤Ç¡¤
void pointX(float circleR, float circleRad){ }
¤È¤Ê¤ë¡¥
¤·¤«¤·¡¤º£²ó¤ÏÌá¤êÃͤ¬É¬ÍפȤʤ롥Á°²ó¤ÏÌá¤êÃͤ¬¤Ê¤¤´Ø¿ô¤ò°·¤Ã¤Æ¤¤¤¿¤¿¤á¡¤´Ø¿ô¤ÎºÇ½é¤ËÌá¤êÃͤ¬¤Ê¤¤¤³¤È¤ò¼¨¤¹¤¿¤á¡Övoid¡×¤Èµ½Ò¤·¤Æ¤¤¤¿¡¥º£²ó¤Ï¡¤¼ÂºÝ¤Ëdraw´Ø¿ôÆâ¤ÇpointX´Ø¿ô¤¬»ÈÍѤµ¤ì¤ëºÝ¤Ï¡¤
x = pointX(r, rad);
¤Ê¤Î¤Ç¡¤pointX´Ø¿ô¤Ï°ú¿ô¤ÇÅϤµ¤ì¤¿È¾·Â¤È³ÑÅÙ¤ò´ð¤Ë¡¤·×»»·ë²Ì¤Ç¤¢¤ëXºÂɸ¤òÌá¤êÃͤȤ·¤ÆÊÖ¤·¡¤¤½¤ÎÊÖ¤·¤¿Ãͤ¬ÊÑ¿ôx¤ËÂåÆþ¤µ¤ì¤ë¤³¤È¤Ë¤Ê¤ë¡¥
¤½¤³¤Ç¡¤pointX´Ø¿ô¤Ï·×»»·ë²Ì¤Ç¤¢¤ëXºÂɸ¤òfloat·¿¤ÎÌá¤êÃͤÇÊÖ¤¹¡¤¤È¤¤¤¦¤³¤È¤ò¼¨¤¹¤¿¤á¤Ë¡¤
float pointX(float circleR, float circleRad){ }
¤È¤Ê¤ë¡¥
·×»»·ë²Ì¤òÌá¤êÃͤȤ·¤ÆÊÖ¤¹¤¿¤á¤Ë¤Ï¡¤
float pointX(float circleR, float circleRad){ //circleR¤ÈcircleRad¤«¤éXºÂɸ¤ò·×»»¤¹¤ë return ·×»»¤·¤¿XºÂɸ; }
¤È¤¹¤ë¡¥¤³¤ì¤ÇpointX´Ø¿ô¤Î´°À®¤Ç¤¢¤ë¡¥pointX¤¬´°À®¤·¤¿¤È¤¹¤ë¤È¥×¥í¥°¥é¥à¤Ï°Ê²¼¤Î¤è¤¦¤Ë¤Ê¤ë¡¥
int r = 150; // ±ß¤ÎȾ·Â int theta; // ²óž³Ñ int dTheta = 5; // ²óž³Ñ¤ÎÁýʬ/ÅÀ float rad; // ²óž³Ñ int d = 8; // ÅÀ¤Îľ·Â float x, y; // ÅÀ¤ÎÃæ¿´ºÂɸ void setup() { size(400, 400); noStroke(); background(255, 255, 255); fill(0, 0, 0); theta = 0; colorMode(HSB, 360, 100, 100); // ¿§¤Î»ØÄê¤òHSB¤Ë // (¿§Áê 0-360, ºÌÅÙ 0-100, ÌÀÅÙ 0-100) } void draw() { rad = radians(theta); x = pointX(r, rad); y = -r * sin(rad); fill(theta % 360, 100, 100); println("theta % 360 =" + (theta % 360)); println("x=" + x); println("y=" + y); ellipse(x + 200, y + 200, d, d); // ÂʱߤÎÃæ¿´¤Îx,yºÂɸ¡¢Éý¡¢¹â¤µ theta = theta + dTheta; } float pointX(float circleR, float circleRad){ //circleR¤ÈcircleRad¤«¤éXºÂɸ¤ò·×»»¤¹¤ë return ·×»»¤·¤¿XºÂɸ; }
´Ø¿ô¤ËÌá¤êÃͤ¬¤¢¤ë¾ì¹ç¡¤°ìÏ¢¤Î¥×¥í¥°¥é¥à¤Îή¤ì¤Ï°Ê²¼¤Î¤è¤¦¤Ë¤Ê¤ë¡¥¦¤ËÃí°Õ¤»¤è¡¥