Haiku Gallery
\ tangram_17 七巧板 20161123 陳爽 \ 改最後一列 可執行 例1 例2 例3 例4 例5 例6 例7 或 例8 \ 例1 彩板拼成 方形 \ 例2 彩板散開 各自轉動 \ 例3 彩板拼成 貓形 \ 例4 彩板翻轉 拼成 方形 與 貓型 \ 例5 彩板拼成 鵝形 \ 例6 彩板翻轉 拼成 貓型 與 鵝形 \ 例7 彩板拼成 船形 \ 例8 彩板翻轉 拼成 鵝形 與 船型 \ 指定點 X,Y 至任意點 x,y 之距離 r : r ( X Y -- r ) y swap - dup * x rot - dup * + sqrt ; \ 兩倍圓周率 : 2pi pi pi + ; \ 原點 X,Y 轉軸 A 角度 ( 0 右 .25 上 .5 左 .75 下 ) : 座標轉換 ( X Y A -- x" y" ) >r 2dup r .01 > -rot ( 洞 X Y ) x rot - y rot - ( 洞 x' y' ) over 2 ** over 2 ** + sqrt ( 洞 x' y' r ) 1.04 * -rot ( 洞 r' x' y' ) swap atan2 2pi / r> - 1 mod ( 洞 r' a ) 2pi * 2dup cos * -rot ( 洞 x" r' a' ) sin * ( 洞 x" y" ) ; \ 從某值到另值隨時間週期取對應中間值 : 中間值 ( x0 x1 -- x ) over - t 3 / sin 2 / .5 + * + ; \ 從某位置方向到另位置方向隨時間週期取對應中間位置方向 : 中間位置方向 ( X0 Y0 A0 X1 Y1 A1 -- X Y A ) >r rot r> ( X0 Y0 X1 Y1 A0 A1 ) 中間值 >r ( X0 Y0 X1 Y1 ) >r swap r> ( X0 X1 Y0 Y1 ) 中間值 >r ( X0 X1 ) 中間值 r> r> ( X Y A ) ; : 網格 x .1 mod .005 > y .1 mod .005 > * ; \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ : 綠 ( R G B X Y A -- R G' B ) 座標轉換 ( R G B 洞 x" y" ) 2dup + -.125 > -rot ( R G B 洞 x"+y">-.25 x" y" ) dup >r - .125 < ( R G B 洞 x"+y">-.25 x"-y"<.25 ) r> .125 < ( R G B 洞 x"+y"<-.25 x"-y"<.25 y"<.25 ) * * * rot + swap ( R G' B ) ; : 黃 ( R G B X Y A -- R' G' B ) 座標轉換 ( R G B 洞 x" y" ) 2dup - .125 < -rot ( R G B 洞 x"-y"<.25 x" y" ) over >r + .125 < r> ( R G B 洞 x"-y"<.25 x"+y"<.25 x" ) -.125 > ( R G B 洞 x"-y"<.25 x"+y"<.25 x">-.25 ) * * * >r rot r@ + rot r> + rot ( R' G' B ) ; : 藍 ( R G B X Y A -- R G B' ) 座標轉換 ( R G B 洞 x" y" ) 2dup - -.062 > -rot ( R G B 洞 x"-y">-.125 x" y" ) over >r + -.062 > r> ( R G B 洞 x"-y">0 y"<.25 x" ) .062 < ( R G B 洞 x"-y">0 y"<.25 x">-.25 ) * * * + ( R G B' ) ; : 紅 ( R G B X Y A -- R' G B ) 座標轉換 ( R G B 洞 x" y" ) 2dup - -rot + ( R G B 洞 x"-y" x"+y" ) dup -.125 > swap ( R G B 洞 x"-y" x"+y">-.25 x"+y" ) .125 < rot ( R G B 洞 x"+y">-.25 x"+y"<.25 x"-y" ) dup .125 < swap ( R G B 洞 x"+y">-.25 x"+y"<.25 x"-y"<.25 x"-y" ) -.125 > ( R G B 洞 x"+y">-.25 x"+y"<.25 x"-y"<.25 x"-y">-.25 ) * * * * >r rot r> + -rot ( R' G B ) ; : 青 ( R G B X Y A -- R G' B' ) 座標轉換 ( R G B 洞 x" y" ) 2dup + .0625 < -rot ( R G B 洞 x"+y"<.125 x" y" ) dup >r - -.0625 > ( R G B 洞 x"+y">-.25 x"-y">-.125 ) r> -.0625 > ( R G B 洞 x"+y"<-.25 x"-y"<-.125 y">-.125 ) * * * >r swap r@ + swap r> + ( R G' B' ) ; : 紫 ( R G B X Y A -- R' G B' ) 座標轉換 ( R G B 洞 x" y" ) swap over - ( R G B 洞 y" x"-y" ) dup -.125 > swap ( R G B 洞 x"-y">-.25 x"-y" ) .125 < rot ( R G B 洞 x"-y">-.25 x"-y"<.25 y" ) dup .0625 < swap ( R G B 洞 x"-y">-.25 x"-y"<.25 y" y"<.125 y" ) -.0625 > ( R G B 洞 x"-y">-.25 x"-y"<.25 y" y"<.125 y">-.125 ) * * * * >r rot r@ + -rot r> + ( R' G B' ) ; : 桔 ( R G B X Y A -- R' G' B ) 座標轉換 ( R G B 洞 x" y" ) 2dup - 0 > rot ( R G B 洞 x"-y">0 x" y" ) .125 < rot ( R G B 洞 x"-y">0 y"<.25 x" ) -.125 > ( R G B 洞 x"-y">0 y"<.25 x">-.25 ) * * * >r rot r@ + rot r> 2 / + rot ( R' G' B ) ; \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 七彩板組圖範例 0 0 0 \ 開始要先 全黑 : 例1 \ 彩板拼成 方形 .500 .625 .000 綠 .375 .500 .000 黃 .687 .625 .000 藍 .625 .500 .000 紅 .500 .437 .000 青 .437 .312 .000 紫 .625 .375 .000 桔 網格 ; : 例2 \ 彩板散開 各自每 10 秒轉 1 圈 .375 .750 0 1 中間值 綠 .250 .500 0 1 中間值 黃 .812 .750 0 1 中間值 藍 .656 .593 0 1 中間值 紅 .500 .485 0 1 中間值 青 .437 .184 0 1 中間值 紫 .750 .375 0 1 中間值 桔 網格 ; : 例3 \ 彩板拼成 貓形 .561 .145 .125 綠 \ 腿 .521 .400 .000 黃 \ 身 .400 .456 .625 桔 \ 胸 .290 .640 .000 紅 \ 頭 .355 .765 .000 藍 \ 右耳 .230 .765 .750 青 \ 左耳 .822 .118 .000 紫 \ 尾 網格 ; : 例4 \ 彩板 隨時間週期 翻轉移動 拼成 方形 與 貓型 \ 前 3 值 彩板 起始 位置方向 後 3 值 終止 位置方向 .500 .437 .000 .230 .765 .750 中間位置方向 青 \ 左耳 .687 .625 .000 .355 .765 .000 中間位置方向 藍 \ 右耳 .625 .500 .000 .290 .640 .000 中間位置方向 紅 \ 頭 .625 .375 .000 .400 .456 .625 中間位置方向 桔 \ 胸 .375 .500 .000 .521 .400 .000 中間位置方向 黃 \ 身 .500 .625 .000 .561 .145 .125 中間位置方向 綠 \ 腿 .437 .312 .000 .822 .118 .000 中間位置方向 紫 \ 尾 網格 ; : 例5 \ 彩板拼成 鵝形 .511 .185 .875 綠 \ 翅 .660 .330 .750 黃 \ 尾 .423 .275 .625 桔 \ 身 .371 .520 .000 紅 \ 脖 .324 .755 .375 藍 \ 嘴 .310 .399 .750 青 \ 胸 .432 .706 .250 紫 \ 頭 網格 ; : 例6 \ 彩板 隨時間週期 翻轉移動 拼成 貓型 與 鵝形 \ 前 3 值 彩板 起始 位置方向 後 3 值 終止 位置方向 .230 .765 .750 .310 .399 .750 中間位置方向 青 \ 胸 .355 .765 .000 .324 .755 .375 中間位置方向 藍 \ 嘴 .290 .640 .000 .371 .520 .000 中間位置方向 紅 \ 脖 .400 .456 .625 .423 .275 .625 中間位置方向 桔 \ 身 .521 .400 .000 .660 .330 .750 中間位置方向 黃 \ 尾 .561 .145 .125 .511 .185 .875 中間位置方向 綠 \ 翅 .822 .118 .000 .432 .706 .250 中間位置方向 紫 \ 頭 網格 ; : 例7 \ 彩板拼成 船形 .426 .621 .000 黃 \ 上帆 .550 .500 .500 綠 \ 下帆 .801 .373 .875 桔 \ 船頭 .535 .288 .125 紅 \ 中艙 .668 .250 .125 藍 \ 前艙 .404 .329 .875 青 \ 後艙 .266 .289 .375 紫 \ 船尾 網格 ; : 例8 \ 彩板 隨時間週期 翻轉移動 拼成 鵝型 與 船形 \ 前 3 值 彩板 起始 位置方向 後 3 值 終止 位置方向 .310 .399 .750 .404 .329 .875 中間位置方向 青 \ 胸 .324 .755 .375 .668 .250 .125 中間位置方向 藍 \ 嘴 .371 .520 .000 .535 .288 .125 中間位置方向 紅 \ 脖 .423 .275 .625 .801 .373 .875 中間位置方向 桔 \ 身 .660 .330 .750 .426 .621 .000 中間位置方向 黃 \ 尾 .511 .185 .875 .550 .500 .500 中間位置方向 綠 \ 翅 .432 .706 .250 .266 .289 .375 中間位置方向 紫 \ 頭 網格 ; \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 改下列 可選擇執行 例1 例2 例3 例4 例5 例6 例7 或 例8 例8
七巧板 Redux17
陳爽
'25 Feb 06
\ tangram_16 七巧板 20161123 陳爽 \ 改最後一列 可執行 例1 例2 例3 例4 例5 例6 例7 或 例8 \ 例1 彩板拼成 方形 \ 例2 彩板散開 各自轉動 \ 例3 彩板拼成 貓形 \ 例4 彩板翻轉 拼成 方形 與 貓型 \ 例5 彩板拼成 鵝形 \ 例6 彩板翻轉 拼成 貓型 與 鵝形 \ 例7 彩板拼成 船形 \ 例8 彩板翻轉 拼成 鵝形 與 船型 \ 指定點 X,Y 至任意點 x,y 之距離 r : r ( X Y -- r ) y swap - dup * x rot - dup * + sqrt ; \ 兩倍圓周率 : 2pi pi pi + ; \ 原點 X,Y 轉軸 A 角度 ( 0 右 .25 上 .5 左 .75 下 ) : 座標轉換 ( X Y A -- x" y" ) >r 2dup r .01 > -rot ( 洞 X Y ) x rot - y rot - ( 洞 x' y' ) over 2 ** over 2 ** + sqrt ( 洞 x' y' r ) 1.04 * -rot ( 洞 r' x' y' ) swap atan2 2pi / r> - 1 mod ( 洞 r' a ) 2pi * 2dup cos * -rot ( 洞 x" r' a' ) sin * ( 洞 x" y" ) ; \ 從某值到另值隨時間週期取對應中間值 : 中間值 ( x0 x1 -- x ) over - t 3 / sin 2 / .5 + * + ; \ 從某位置方向到另位置方向隨時間週期取對應中間位置方向 : 中間位置方向 ( X0 Y0 A0 X1 Y1 A1 -- X Y A ) >r rot r> ( X0 Y0 X1 Y1 A0 A1 ) 中間值 >r ( X0 Y0 X1 Y1 ) >r swap r> ( X0 X1 Y0 Y1 ) 中間值 >r ( X0 X1 ) 中間值 r> r> ( X Y A ) ; : 網格 x .1 mod .005 > y .1 mod .005 > * ; \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ : 綠 ( R G B X Y A -- R G' B ) 座標轉換 ( R G B 洞 x" y" ) 2dup + -.125 > -rot ( R G B 洞 x"+y">-.25 x" y" ) dup >r - .125 < ( R G B 洞 x"+y">-.25 x"-y"<.25 ) r> .125 < ( R G B 洞 x"+y"<-.25 x"-y"<.25 y"<.25 ) * * * rot + swap ( R G' B ) ; : 黃 ( R G B X Y A -- R' G' B ) 座標轉換 ( R G B 洞 x" y" ) 2dup - .125 < -rot ( R G B 洞 x"-y"<.25 x" y" ) over >r + .125 < r> ( R G B 洞 x"-y"<.25 x"+y"<.25 x" ) -.125 > ( R G B 洞 x"-y"<.25 x"+y"<.25 x">-.25 ) * * * >r rot r@ + rot r> + rot ( R' G' B ) ; : 藍 ( R G B X Y A -- R G B' ) 座標轉換 ( R G B 洞 x" y" ) 2dup - -.062 > -rot ( R G B 洞 x"-y">-.125 x" y" ) over >r + -.062 > r> ( R G B 洞 x"-y">0 y"<.25 x" ) .062 < ( R G B 洞 x"-y">0 y"<.25 x">-.25 ) * * * + ( R G B' ) ; : 紅 ( R G B X Y A -- R' G B ) 座標轉換 ( R G B 洞 x" y" ) 2dup - -rot + ( R G B 洞 x"-y" x"+y" ) dup -.125 > swap ( R G B 洞 x"-y" x"+y">-.25 x"+y" ) .125 < rot ( R G B 洞 x"+y">-.25 x"+y"<.25 x"-y" ) dup .125 < swap ( R G B 洞 x"+y">-.25 x"+y"<.25 x"-y"<.25 x"-y" ) -.125 > ( R G B 洞 x"+y">-.25 x"+y"<.25 x"-y"<.25 x"-y">-.25 ) * * * * >r rot r> + -rot ( R' G B ) ; : 青 ( R G B X Y A -- R G' B' ) 座標轉換 ( R G B 洞 x" y" ) 2dup + .0625 < -rot ( R G B 洞 x"+y"<.125 x" y" ) dup >r - -.0625 > ( R G B 洞 x"+y">-.25 x"-y">-.125 ) r> -.0625 > ( R G B 洞 x"+y"<-.25 x"-y"<-.125 y">-.125 ) * * * >r swap r@ + swap r> + ( R G' B' ) ; : 紫 ( R G B X Y A -- R' G B' ) 座標轉換 ( R G B 洞 x" y" ) swap over - ( R G B 洞 y" x"-y" ) dup -.125 > swap ( R G B 洞 x"-y">-.25 x"-y" ) .125 < rot ( R G B 洞 x"-y">-.25 x"-y"<.25 y" ) dup .0625 < swap ( R G B 洞 x"-y">-.25 x"-y"<.25 y" y"<.125 y" ) -.0625 > ( R G B 洞 x"-y">-.25 x"-y"<.25 y" y"<.125 y">-.125 ) * * * * >r rot r@ + -rot r> + ( R' G B' ) ; : 桔 ( R G B X Y A -- R' G' B ) 座標轉換 ( R G B 洞 x" y" ) 2dup - 0 > rot ( R G B 洞 x"-y">0 x" y" ) .125 < rot ( R G B 洞 x"-y">0 y"<.25 x" ) -.125 > ( R G B 洞 x"-y">0 y"<.25 x">-.25 ) * * * >r rot r@ + rot r> 2 / + rot ( R' G' B ) ; \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 七彩板組圖範例 0 0 0 \ 開始要先 全黑 : 例1 \ 彩板拼成 方形 .500 .625 .000 綠 .375 .500 .000 黃 .687 .625 .000 藍 .625 .500 .000 紅 .500 .437 .000 青 .437 .312 .000 紫 .625 .375 .000 桔 網格 ; : 例2 \ 彩板散開 各自每 10 秒轉 1 圈 .375 .750 0 1 中間值 綠 .250 .500 0 1 中間值 黃 .812 .750 0 1 中間值 藍 .656 .593 0 1 中間值 紅 .500 .485 0 1 中間值 青 .437 .184 0 1 中間值 紫 .750 .375 0 1 中間值 桔 網格 ; : 例3 \ 彩板拼成 貓形 .561 .145 .125 綠 \ 腿 .521 .400 .000 黃 \ 身 .400 .456 .625 桔 \ 胸 .290 .640 .000 紅 \ 頭 .355 .765 .000 藍 \ 右耳 .230 .765 .750 青 \ 左耳 .822 .118 .000 紫 \ 尾 網格 ; : 例4 \ 彩板 隨時間週期 翻轉移動 拼成 方形 與 貓型 \ 前 3 值 彩板 起始 位置方向 後 3 值 終止 位置方向 .500 .437 .000 .230 .765 .750 中間位置方向 青 \ 左耳 .687 .625 .000 .355 .765 .000 中間位置方向 藍 \ 右耳 .625 .500 .000 .290 .640 .000 中間位置方向 紅 \ 頭 .625 .375 .000 .400 .456 .625 中間位置方向 桔 \ 胸 .375 .500 .000 .521 .400 .000 中間位置方向 黃 \ 身 .500 .625 .000 .561 .145 .125 中間位置方向 綠 \ 腿 .437 .312 .000 .822 .118 .000 中間位置方向 紫 \ 尾 網格 ; : 例5 \ 彩板拼成 鵝形 .511 .185 .875 綠 \ 翅 .660 .330 .750 黃 \ 尾 .423 .275 .625 桔 \ 身 .371 .520 .000 紅 \ 脖 .324 .755 .375 藍 \ 嘴 .310 .399 .750 青 \ 胸 .432 .706 .250 紫 \ 頭 網格 ; : 例6 \ 彩板 隨時間週期 翻轉移動 拼成 貓型 與 鵝形 \ 前 3 值 彩板 起始 位置方向 後 3 值 終止 位置方向 .230 .765 .750 .310 .399 .750 中間位置方向 青 \ 胸 .355 .765 .000 .324 .755 .375 中間位置方向 藍 \ 嘴 .290 .640 .000 .371 .520 .000 中間位置方向 紅 \ 脖 .400 .456 .625 .423 .275 .625 中間位置方向 桔 \ 身 .521 .400 .000 .660 .330 .750 中間位置方向 黃 \ 尾 .561 .145 .125 .511 .185 .875 中間位置方向 綠 \ 翅 .822 .118 .000 .432 .706 .250 中間位置方向 紫 \ 頭 網格 ; : 例7 \ 彩板拼成 船形 .426 .621 .000 黃 \ 上帆 .550 .500 .500 綠 \ 下帆 .801 .373 .875 桔 \ 船頭 .535 .288 .125 紅 \ 中艙 .668 .250 .125 藍 \ 前艙 .404 .329 .875 青 \ 後艙 .266 .289 .375 紫 \ 船尾 網格 ; : 例8 \ 彩板 隨時間週期 翻轉移動 拼成 鵝型 與 船形 \ 前 3 值 彩板 起始 位置方向 後 3 值 終止 位置方向 .310 .399 .750 .404 .329 .875 中間位置方向 青 \ 胸 .324 .755 .375 .668 .250 .125 中間位置方向 藍 \ 嘴 .371 .520 .000 .535 .288 .125 中間位置方向 紅 \ 脖 .423 .275 .625 .801 .373 .875 中間位置方向 桔 \ 身 .660 .330 .750 .426 .621 .000 中間位置方向 黃 \ 尾 .511 .185 .875 .550 .500 .500 中間位置方向 綠 \ 翅 .432 .706 .250 .266 .289 .375 中間位置方向 紫 \ 頭 網格 ; \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 改下列 可選擇執行 例1 例2 例3 例4 例5 例6 例7 或 例8 例7
七巧板 Redux16
陳爽
'25 Feb 06
\ tangram_15 七巧板 20161123 陳爽 \ 改最後一列 可執行 例1 例2 例3 例4 例5 或 例6 \ 例1 彩板拼成 方形 \ 例2 彩板散開 各自轉動 \ 例3 彩板拼成 貓形 \ 例4 彩板翻轉 拼成 方形 與 貓型 \ 例5 彩板拼成 鵝形 \ 例6 彩板翻轉 拼成 貓型 與 鵝形 \ 指定點 X,Y 至任意點 x,y 之距離 r : r ( X Y -- r ) y swap - dup * x rot - dup * + sqrt ; \ 兩倍圓周率 : 2pi pi pi + ; \ 原點 X,Y 轉軸 A 角度 ( 0 右 .25 上 .5 左 .75 下 ) : 座標轉換 ( X Y A -- x" y" ) >r 2dup r .01 > -rot ( 洞 X Y ) x rot - y rot - ( 洞 x' y' ) over 2 ** over 2 ** + sqrt ( 洞 x' y' r ) 1.04 * -rot ( 洞 r' x' y' ) swap atan2 2pi / r> - 1 mod ( 洞 r' a ) 2pi * 2dup cos * -rot ( 洞 x" r' a' ) sin * ( 洞 x" y" ) ; \ 從某值到另值隨時間週期取對應中間值 : 中間值 ( x0 x1 -- x ) over - t 3 / sin 2 / .5 + * + ; \ 從某位置方向到另位置方向隨時間週期取對應中間位置方向 : 中間位置方向 ( X0 Y0 A0 X1 Y1 A1 -- X Y A ) >r rot r> ( X0 Y0 X1 Y1 A0 A1 ) 中間值 >r ( X0 Y0 X1 Y1 ) >r swap r> ( X0 X1 Y0 Y1 ) 中間值 >r ( X0 X1 ) 中間值 r> r> ( X Y A ) ; : 網格 x .1 mod .005 > y .1 mod .005 > * ; \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ : 綠 ( R G B X Y A -- R G' B ) 座標轉換 ( R G B 洞 x" y" ) 2dup + -.125 > -rot ( R G B 洞 x"+y">-.25 x" y" ) dup >r - .125 < ( R G B 洞 x"+y">-.25 x"-y"<.25 ) r> .125 < ( R G B 洞 x"+y"<-.25 x"-y"<.25 y"<.25 ) * * * rot + swap ( R G' B ) ; : 黃 ( R G B X Y A -- R' G' B ) 座標轉換 ( R G B 洞 x" y" ) 2dup - .125 < -rot ( R G B 洞 x"-y"<.25 x" y" ) over >r + .125 < r> ( R G B 洞 x"-y"<.25 x"+y"<.25 x" ) -.125 > ( R G B 洞 x"-y"<.25 x"+y"<.25 x">-.25 ) * * * >r rot r@ + rot r> + rot ( R' G' B ) ; : 藍 ( R G B X Y A -- R G B' ) 座標轉換 ( R G B 洞 x" y" ) 2dup - -.062 > -rot ( R G B 洞 x"-y">-.125 x" y" ) over >r + -.062 > r> ( R G B 洞 x"-y">0 y"<.25 x" ) .062 < ( R G B 洞 x"-y">0 y"<.25 x">-.25 ) * * * + ( R G B' ) ; : 紅 ( R G B X Y A -- R' G B ) 座標轉換 ( R G B 洞 x" y" ) 2dup - -rot + ( R G B 洞 x"-y" x"+y" ) dup -.125 > swap ( R G B 洞 x"-y" x"+y">-.25 x"+y" ) .125 < rot ( R G B 洞 x"+y">-.25 x"+y"<.25 x"-y" ) dup .125 < swap ( R G B 洞 x"+y">-.25 x"+y"<.25 x"-y"<.25 x"-y" ) -.125 > ( R G B 洞 x"+y">-.25 x"+y"<.25 x"-y"<.25 x"-y">-.25 ) * * * * >r rot r> + -rot ( R' G B ) ; : 青 ( R G B X Y A -- R G' B' ) 座標轉換 ( R G B 洞 x" y" ) 2dup + .0625 < -rot ( R G B 洞 x"+y"<.125 x" y" ) dup >r - -.0625 > ( R G B 洞 x"+y">-.25 x"-y">-.125 ) r> -.0625 > ( R G B 洞 x"+y"<-.25 x"-y"<-.125 y">-.125 ) * * * >r swap r@ + swap r> + ( R G' B' ) ; : 紫 ( R G B X Y A -- R' G B' ) 座標轉換 ( R G B 洞 x" y" ) swap over - ( R G B 洞 y" x"-y" ) dup -.125 > swap ( R G B 洞 x"-y">-.25 x"-y" ) .125 < rot ( R G B 洞 x"-y">-.25 x"-y"<.25 y" ) dup .0625 < swap ( R G B 洞 x"-y">-.25 x"-y"<.25 y" y"<.125 y" ) -.0625 > ( R G B 洞 x"-y">-.25 x"-y"<.25 y" y"<.125 y">-.125 ) * * * * >r rot r@ + -rot r> + ( R' G B' ) ; : 桔 ( R G B X Y A -- R' G' B ) 座標轉換 ( R G B 洞 x" y" ) 2dup - 0 > rot ( R G B 洞 x"-y">0 x" y" ) .125 < rot ( R G B 洞 x"-y">0 y"<.25 x" ) -.125 > ( R G B 洞 x"-y">0 y"<.25 x">-.25 ) * * * >r rot r@ + rot r> 2 / + rot ( R' G' B ) ; \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 七彩板組圖範例 0 0 0 \ 開始要先 全黑 : 例1 \ 彩板拼成 方形 .500 .625 .000 綠 .375 .500 .000 黃 .687 .625 .000 藍 .625 .500 .000 紅 .500 .437 .000 青 .437 .312 .000 紫 .625 .375 .000 桔 網格 ; : 例2 \ 彩板散開 各自每 10 秒轉 1 圈 .375 .750 0 1 中間值 綠 .250 .500 0 1 中間值 黃 .812 .750 0 1 中間值 藍 .656 .593 0 1 中間值 紅 .500 .485 0 1 中間值 青 .437 .184 0 1 中間值 紫 .750 .375 0 1 中間值 桔 網格 ; : 例3 \ 彩板拼成 貓形 .561 .145 .125 綠 \ 腿 .521 .400 .000 黃 \ 身 .400 .456 .625 桔 \ 胸 .290 .640 .000 紅 \ 頭 .355 .765 .000 藍 \ 右耳 .230 .765 .750 青 \ 左耳 .822 .118 .000 紫 \ 尾 網格 ; : 例4 \ 彩板 隨時間週期 翻轉移動 拼成 方形 與 貓型 \ 前 3 值 彩板 起始 位置方向 後 3 值 終止 位置方向 .500 .437 .000 .230 .765 .750 中間位置方向 青 \ 左耳 .687 .625 .000 .355 .765 .000 中間位置方向 藍 \ 右耳 .625 .500 .000 .290 .640 .000 中間位置方向 紅 \ 頭 .625 .375 .000 .400 .456 .625 中間位置方向 桔 \ 胸 .375 .500 .000 .521 .400 .000 中間位置方向 黃 \ 身 .500 .625 .000 .561 .145 .125 中間位置方向 綠 \ 腿 .437 .312 .000 .822 .118 .000 中間位置方向 紫 \ 尾 網格 ; : 例5 \ 彩板拼成 鵝形 .511 .185 .875 綠 \ 翅 .660 .330 .750 黃 \ 尾 .423 .275 .625 桔 \ 身 .371 .520 .000 紅 \ 脖 .324 .755 .375 藍 \ 嘴 .310 .399 .750 青 \ 胸 .432 .706 .250 紫 \ 頭 網格 ; : 例6 \ 彩板 隨時間週期 翻轉移動 拼成 貓型 與 鵝形 \ 前 3 值 彩板 起始 位置方向 後 3 值 終止 位置方向 .230 .765 .750 .310 .399 .750 中間位置方向 青 \ 胸 .355 .765 .000 .324 .755 .375 中間位置方向 藍 \ 嘴 .290 .640 .000 .371 .520 .000 中間位置方向 紅 \ 脖 .400 .456 .625 .423 .275 .625 中間位置方向 桔 \ 身 .521 .400 .000 .660 .330 .750 中間位置方向 黃 \ 尾 .561 .145 .125 .511 .185 .875 中間位置方向 綠 \ 翅 .822 .118 .000 .432 .706 .250 中間位置方向 紫 \ 頭 網格 ; \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 可執行 例1 例2 例3 例4 例5 或 例6 例6
七巧板 Redux15
陳爽
'25 Feb 06
\ tangram_08 七巧板 20161118 陳爽 \ 任意點 x,y 之座標 原點置中 值域放大 : x x 2 * .5 - ; \ -1 < x < 1 : y y 2 * .5 - ; \ -1 < y < 1 \ 指定點 X,Y 至任意點 x,y 之距離 r : r ( X Y -- r ) y .5 - swap - dup * x .5 - rot - dup * + sqrt ; \ 兩倍圓周率 : 2pi pi pi + ; \ 負片影像: 0 變 1, 1 變 0 : 反 1 swap - ; \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 原點 X,Y 轉軸 A 角度 ( 0 右 .25 上 .5 左 .75 下 ) : 座標轉換 ( X Y A -- x" y" ) >r 2dup r .02 > -rot ( 洞 X Y ) x .5 - rot - ( 洞 Y x' ) y -.5 + rot - ( 洞 x' y' ) over 2 ** over 2 ** + sqrt 1.04 * -rot ( 洞 r x' y' ) swap atan2 2pi / r> - 1 mod ( 洞 r a ) 2pi * ( 洞 r a' ) 2dup cos * -rot ( 洞 x" r a' ) sin * ( 洞 x" y" ) ; : 綠 ( R G B X Y A -- R G' B ) 座標轉換 ( R G B 洞 x" y" ) 2dup + -.25 > -rot ( R G B 洞 x"+y">-.25 x" y" ) dup >r - .25 < ( R G B 洞 x"+y">-.25 x"-y"<.25 ) r> .25 < ( R G B 洞 x"+y"<-.25 x"-y"<.25 y"<.25 ) * * * rot + swap ( R G' B ) ; : 黃 ( R G B X Y A -- R' G' B ) 座標轉換 ( R G B 洞 x" y" ) 2dup - .25 < -rot ( R G B 洞 x"-y"<.25 x" y" ) over >r + .25 < r> ( R G B 洞 x"-y"<.25 x"+y"<.25 x" ) -.25 > ( R G B 洞 x"-y"<.25 x"+y"<.25 x">-.25 ) * * * >r rot r@ + rot r> + rot ( R' G' B ) ; : 藍 ( R G B X Y A -- R G B' ) 座標轉換 ( R G B 洞 x" y" ) 2dup - -.125 > -rot ( R G B 洞 x"-y">-.125 x" y" ) over >r + -.125 > r> ( R G B 洞 x"-y">0 y"<.25 x" ) .125 < ( R G B 洞 x"-y">0 y"<.25 x">-.25 ) * * * + ( R G B' ) ; : 紅 ( R G B X Y A -- R' G B ) 座標轉換 ( R G B 洞 x" y" ) 2dup - -rot + ( R G B 洞 x"-y" x"+y" ) dup -.25 > swap ( R G B 洞 x"-y" x"+y">-.25 x"+y" ) .25 < rot ( R G B 洞 x"+y">-.25 x"+y"<.25 x"-y" ) dup .25 < swap ( R G B 洞 x"+y">-.25 x"+y"<.25 x"-y"<.25 x"-y" ) -.25 > ( R G B 洞 x"+y">-.25 x"+y"<.25 x"-y"<.25 x"-y">-.25 ) * * * * >r rot r> + -rot ( R' G B ) ; : 青 ( R G B X Y A -- R G' B' ) 座標轉換 ( R G B 洞 x" y" ) 2dup + .125 < -rot ( R G B 洞 x"+y"<.125 x" y" ) dup >r - -.125 > ( R G B 洞 x"+y">-.25 x"-y">-.125 ) r> -.125 > ( R G B 洞 x"+y"<-.25 x"-y"<-.125 y">-.125 ) * * * >r swap r@ + swap r> + ( R G' B' ) ; : 紫 ( R G B X Y A -- R' G B' ) 座標轉換 ( R G B 洞 x" y" ) swap over - ( R G B 洞 y" x"-y" ) dup -.25 > swap ( R G B 洞 x"-y">-.25 x"-y" ) .25 < rot ( R G B 洞 x"-y">-.25 x"-y"<.25 y" ) dup .125 < swap ( R G B 洞 x"-y">-.25 x"-y"<.25 y" y"<.125 y" ) -.125 > ( R G B 洞 x"-y">-.25 x"-y"<.25 y" y"<.125 y">-.125 ) * * * * >r rot r@ + -rot r> + ( R' G B' ) ; : 桔 ( R G B X Y A -- R' G' B ) 座標轉換 ( R G B 洞 x" y" ) 2dup - 0 > rot ( R G B 洞 x"-y">0 x" y" ) .25 < rot ( R G B 洞 x"-y">0 y"<.25 x" ) -.25 > ( R G B 洞 x"-y">0 y"<.25 x">-.25 ) * * * >r rot r@ + rot r> 2 / + rot ( R' G' B ) ; \ ( A 七彩板組圖範例 0 0 0 \ 全黑 ( A1. 拼成方形 .0000 .2500 0 綠 -.2500 .0000 0 黃 .3750 .2500 0 藍 .2500 .0000 0 紅 .0000 -.1250 0 青 -.1250 -.3750 0 紫 .2500 -.2500 0 桔 \ ) ( A2. 方形散開 -.2500 .5000 0 綠 -.5000 -.0000 0 黃 .6250 .5000 0 藍 .3125 .1875 0 紅 .0000 -.1250 0 青 -.1250 -.6250 0 紫 .5000 -.2500 0 桔 \ ) \ ( A3. 貓 -.4500 .6310 .7500 青 \ 左耳 .6050 -.6720 .5420 紫 \ 尾 .1200 -.7100 .1250 綠 \ 腿 .0420 -.2000 .0000 黃 \ 身 -.2000 -.0759 .6250 桔 \ 胸 -.3250 .3855 .0000 紅 \ 頭 -.2000 .6310 .0000 藍 \ 右耳 \ ) \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ )
七巧板 Redux8 reorder
Anonymous
'25 Feb 06
\ tangram_08 七巧板 20161118 陳爽 \ 任意點 x,y 之座標 原點置中 值域放大 : x x 2 * .5 - ; \ -1 < x < 1 : y y 2 * .5 - ; \ -1 < y < 1 \ 指定點 X,Y 至任意點 x,y 之距離 r : r ( X Y -- r ) y .5 - swap - dup * x .5 - rot - dup * + sqrt ; \ 兩倍圓周率 : 2pi pi pi + ; \ 負片影像: 0 變 1, 1 變 0 : 反 1 swap - ; \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 原點 X,Y 轉軸 A 角度 ( 0 右 .25 上 .5 左 .75 下 ) : 座標轉換 ( X Y A -- x" y" ) >r 2dup r .02 > -rot ( 洞 X Y ) x .5 - rot - ( 洞 Y x' ) y -.5 + rot - ( 洞 x' y' ) over 2 ** over 2 ** + sqrt 1.04 * -rot ( 洞 r x' y' ) swap atan2 2pi / r> - 1 mod ( 洞 r a ) 2pi * ( 洞 r a' ) 2dup cos * -rot ( 洞 x" r a' ) sin * ( 洞 x" y" ) ; : 綠 ( R G B X Y A -- R G' B ) 座標轉換 ( R G B 洞 x" y" ) 2dup + -.25 > -rot ( R G B 洞 x"+y">-.25 x" y" ) dup >r - .25 < ( R G B 洞 x"+y">-.25 x"-y"<.25 ) r> .25 < ( R G B 洞 x"+y"<-.25 x"-y"<.25 y"<.25 ) * * * rot + swap ( R G' B ) ; : 黃 ( R G B X Y A -- R' G' B ) 座標轉換 ( R G B 洞 x" y" ) 2dup - .25 < -rot ( R G B 洞 x"-y"<.25 x" y" ) over >r + .25 < r> ( R G B 洞 x"-y"<.25 x"+y"<.25 x" ) -.25 > ( R G B 洞 x"-y"<.25 x"+y"<.25 x">-.25 ) * * * >r rot r@ + rot r> + rot ( R' G' B ) ; : 藍 ( R G B X Y A -- R G B' ) 座標轉換 ( R G B 洞 x" y" ) 2dup - -.125 > -rot ( R G B 洞 x"-y">-.125 x" y" ) over >r + -.125 > r> ( R G B 洞 x"-y">0 y"<.25 x" ) .125 < ( R G B 洞 x"-y">0 y"<.25 x">-.25 ) * * * + ( R G B' ) ; : 紅 ( R G B X Y A -- R' G B ) 座標轉換 ( R G B 洞 x" y" ) 2dup - -rot + ( R G B 洞 x"-y" x"+y" ) dup -.25 > swap ( R G B 洞 x"-y" x"+y">-.25 x"+y" ) .25 < rot ( R G B 洞 x"+y">-.25 x"+y"<.25 x"-y" ) dup .25 < swap ( R G B 洞 x"+y">-.25 x"+y"<.25 x"-y"<.25 x"-y" ) -.25 > ( R G B 洞 x"+y">-.25 x"+y"<.25 x"-y"<.25 x"-y">-.25 ) * * * * >r rot r> + -rot ( R' G B ) ; : 青 ( R G B X Y A -- R G' B' ) 座標轉換 ( R G B 洞 x" y" ) 2dup + .125 < -rot ( R G B 洞 x"+y"<.125 x" y" ) dup >r - -.125 > ( R G B 洞 x"+y">-.25 x"-y">-.125 ) r> -.125 > ( R G B 洞 x"+y"<-.25 x"-y"<-.125 y">-.125 ) * * * >r swap r@ + swap r> + ( R G' B' ) ; : 紫 ( R G B X Y A -- R' G B' ) 座標轉換 ( R G B 洞 x" y" ) swap over - ( R G B 洞 y" x"-y" ) dup -.25 > swap ( R G B 洞 x"-y">-.25 x"-y" ) .25 < rot ( R G B 洞 x"-y">-.25 x"-y"<.25 y" ) dup .125 < swap ( R G B 洞 x"-y">-.25 x"-y"<.25 y" y"<.125 y" ) -.125 > ( R G B 洞 x"-y">-.25 x"-y"<.25 y" y"<.125 y">-.125 ) * * * * >r rot r@ + -rot r> + ( R' G B' ) ; : 桔 ( R G B X Y A -- R' G' B ) 座標轉換 ( R G B 洞 x" y" ) 2dup - 0 > rot ( R G B 洞 x"-y">0 x" y" ) .25 < rot ( R G B 洞 x"-y">0 y"<.25 x" ) -.25 > ( R G B 洞 x"-y">0 y"<.25 x">-.25 ) * * * >r rot r@ + rot r> 2 / + rot ( R' G' B ) ; \ ( A 七彩板組圖範例 .3 .3 .3 \ 全黑 ( A1. 拼成方形 .0000 .2500 0 綠 -.2500 .0000 0 黃 .3750 .2500 0 藍 .2500 .0000 0 紅 .0000 -.1250 0 青 -.1250 -.3750 0 紫 .2500 -.2500 0 桔 \ ) ( A2. 方形散開 -.2500 .5000 0 綠 -.5000 -.0000 0 黃 .6250 .5000 0 藍 .3125 .1875 0 紅 .0000 -.1250 0 青 -.1250 -.6250 0 紫 .5000 -.2500 0 桔 \ ) \ ( A3. 貓 .1200 -.7100 .1250 綠 \ 腿 .0420 -.2000 .0000 黃 \ 身 -.2000 -.0759 .6250 桔 \ 胸 -.3250 .3855 .0000 紅 \ 頭 -.2000 .6310 .0000 藍 \ 右耳 -.4500 .6310 .7500 青 \ 左耳 .6050 -.6720 .5420 紫 \ 尾 \ ) \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ )
七巧板 Redux8 gray
Anonymous
'25 Feb 06
\ tangram_08 七巧板 20161118 陳爽 \ 任意點 x,y 之座標 原點置中 值域放大 : x x 2 * .5 - ; \ -1 < x < 1 : y y 2 * .5 - ; \ -1 < y < 1 \ 指定點 X,Y 至任意點 x,y 之距離 r : r ( X Y -- r ) y .5 - swap - dup * x .5 - rot - dup * + sqrt ; \ 兩倍圓周率 : 2pi pi pi + ; \ 負片影像: 0 變 1, 1 變 0 : 反 1 swap - ; \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 原點 X,Y 轉軸 A 角度 ( 0 右 .25 上 .5 左 .75 下 ) : 座標轉換 ( X Y A -- x" y" ) >r 2dup r .02 > -rot ( 洞 X Y ) x .5 - rot - ( 洞 Y x' ) y -.5 + rot - ( 洞 x' y' ) over 2 ** over 2 ** + sqrt 1.04 * -rot ( 洞 r x' y' ) swap atan2 2pi / r> - 1 mod ( 洞 r a ) 2pi * ( 洞 r a' ) 2dup cos * -rot ( 洞 x" r a' ) sin * ( 洞 x" y" ) ; : 綠 ( R G B X Y A -- R G' B ) 座標轉換 ( R G B 洞 x" y" ) 2dup + -.25 > -rot ( R G B 洞 x"+y">-.25 x" y" ) dup >r - .25 < ( R G B 洞 x"+y">-.25 x"-y"<.25 ) r> .25 < ( R G B 洞 x"+y"<-.25 x"-y"<.25 y"<.25 ) * * * rot + swap ( R G' B ) ; : 黃 ( R G B X Y A -- R' G' B ) 座標轉換 ( R G B 洞 x" y" ) 2dup - .25 < -rot ( R G B 洞 x"-y"<.25 x" y" ) over >r + .25 < r> ( R G B 洞 x"-y"<.25 x"+y"<.25 x" ) -.25 > ( R G B 洞 x"-y"<.25 x"+y"<.25 x">-.25 ) * * * >r rot r@ + rot r> + rot ( R' G' B ) ; : 藍 ( R G B X Y A -- R G B' ) 座標轉換 ( R G B 洞 x" y" ) 2dup - -.125 > -rot ( R G B 洞 x"-y">-.125 x" y" ) over >r + -.125 > r> ( R G B 洞 x"-y">0 y"<.25 x" ) .125 < ( R G B 洞 x"-y">0 y"<.25 x">-.25 ) * * * + ( R G B' ) ; : 紅 ( R G B X Y A -- R' G B ) 座標轉換 ( R G B 洞 x" y" ) 2dup - -rot + ( R G B 洞 x"-y" x"+y" ) dup -.25 > swap ( R G B 洞 x"-y" x"+y">-.25 x"+y" ) .25 < rot ( R G B 洞 x"+y">-.25 x"+y"<.25 x"-y" ) dup .25 < swap ( R G B 洞 x"+y">-.25 x"+y"<.25 x"-y"<.25 x"-y" ) -.25 > ( R G B 洞 x"+y">-.25 x"+y"<.25 x"-y"<.25 x"-y">-.25 ) * * * * >r rot r> + -rot ( R' G B ) ; : 青 ( R G B X Y A -- R G' B' ) 座標轉換 ( R G B 洞 x" y" ) 2dup + .125 < -rot ( R G B 洞 x"+y"<.125 x" y" ) dup >r - -.125 > ( R G B 洞 x"+y">-.25 x"-y">-.125 ) r> -.125 > ( R G B 洞 x"+y"<-.25 x"-y"<-.125 y">-.125 ) * * * >r swap r@ + swap r> + ( R G' B' ) ; : 紫 ( R G B X Y A -- R' G B' ) 座標轉換 ( R G B 洞 x" y" ) swap over - ( R G B 洞 y" x"-y" ) dup -.25 > swap ( R G B 洞 x"-y">-.25 x"-y" ) .25 < rot ( R G B 洞 x"-y">-.25 x"-y"<.25 y" ) dup .125 < swap ( R G B 洞 x"-y">-.25 x"-y"<.25 y" y"<.125 y" ) -.125 > ( R G B 洞 x"-y">-.25 x"-y"<.25 y" y"<.125 y">-.125 ) * * * * >r rot r@ + -rot r> + ( R' G B' ) ; : 桔 ( R G B X Y A -- R' G' B ) 座標轉換 ( R G B 洞 x" y" ) 2dup - 0 > rot ( R G B 洞 x"-y">0 x" y" ) .25 < rot ( R G B 洞 x"-y">0 y"<.25 x" ) -.25 > ( R G B 洞 x"-y">0 y"<.25 x">-.25 ) * * * >r rot r@ + rot r> 2 / + rot ( R' G' B ) ; \ ( A 七彩板組圖範例 0 0 0 \ 全黑 ( A1. 拼成方形 .0000 .2500 0 綠 -.2500 .0000 0 黃 .3750 .2500 0 藍 .2500 .0000 0 紅 .0000 -.1250 0 青 -.1250 -.3750 0 紫 .2500 -.2500 0 桔 \ ) ( A2. 方形散開 -.2500 .5000 0 綠 -.5000 -.0000 0 黃 .6250 .5000 0 藍 .3125 .1875 0 紅 .0000 -.1250 0 青 -.1250 -.6250 0 紫 .5000 -.2500 0 桔 \ ) \ ( A3. 貓 .1200 -.7100 .1250 綠 \ 腿 .0420 -.2000 .0000 黃 \ 身 -.2000 -.0759 .6250 桔 \ 胸 -.3250 .3855 .0000 紅 \ 頭 -.2000 .6310 .0000 藍 \ 右耳 -.4500 .6310 .7500 青 \ 左耳 .6050 -.6720 .5420 紫 \ 尾 \ ) \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ ) .7 +
七巧板 Redux8 blue
Anonymous
'25 Feb 06
\ tangram_14 七巧板 20161118 陳爽 \ 改最後列 可執行 例1 例2 例3 或 例4 \ 指定點 X,Y 至任意點 x,y 之距離 r : r ( X Y -- r ) y swap - dup * x rot - dup * + sqrt ; \ 兩倍圓周率 : 2pi pi pi + ; \ 原點 X,Y 轉軸 A 角度 ( 0 右 .25 上 .5 左 .75 下 ) : 座標轉換 ( X Y A -- x" y" ) >r 2dup r .01 > -rot ( 洞 X Y ) x rot - y rot - ( 洞 x' y' ) over 2 ** over 2 ** + sqrt ( 洞 x' y' r ) 1.04 * -rot ( 洞 r' x' y' ) swap atan2 2pi / r> - 1 mod ( 洞 r' a ) 2pi * 2dup cos * -rot ( 洞 x" r' a' ) sin * ( 洞 x" y" ) ; \ 從某值到另值隨時間週期取對應中間值 : 中間值 ( x0 x1 -- x ) over - t 2 / sin 2 / .5 + * + ; \ 從某位置方向到另位置方向隨時間週期取對應中間位置方向 : 中間位置方向 ( X0 Y0 A0 X1 Y1 A1 -- X Y A ) >r rot r> ( X0 Y0 X1 Y1 A0 A1 ) 中間值 >r ( X0 Y0 X1 Y1 ) >r swap r> ( X0 X1 Y0 Y1 ) 中間值 >r ( X0 X1 ) 中間值 r> r> ( X Y A ) ; : 網格 x .0625 mod .005 > y .0625 mod .005 > * ; \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ : 綠 ( R G B X Y A -- R G' B ) 座標轉換 ( R G B 洞 x" y" ) 2dup + -.125 > -rot ( R G B 洞 x"+y">-.25 x" y" ) dup >r - .125 < ( R G B 洞 x"+y">-.25 x"-y"<.25 ) r> .125 < ( R G B 洞 x"+y"<-.25 x"-y"<.25 y"<.25 ) * * * rot + swap ( R G' B ) ; : 黃 ( R G B X Y A -- R' G' B ) 座標轉換 ( R G B 洞 x" y" ) 2dup - .125 < -rot ( R G B 洞 x"-y"<.25 x" y" ) over >r + .125 < r> ( R G B 洞 x"-y"<.25 x"+y"<.25 x" ) -.125 > ( R G B 洞 x"-y"<.25 x"+y"<.25 x">-.25 ) * * * >r rot r@ + rot r> + rot ( R' G' B ) ; : 藍 ( R G B X Y A -- R G B' ) 座標轉換 ( R G B 洞 x" y" ) 2dup - -.062 > -rot ( R G B 洞 x"-y">-.125 x" y" ) over >r + -.062 > r> ( R G B 洞 x"-y">0 y"<.25 x" ) .062 < ( R G B 洞 x"-y">0 y"<.25 x">-.25 ) * * * + ( R G B' ) ; : 紅 ( R G B X Y A -- R' G B ) 座標轉換 ( R G B 洞 x" y" ) 2dup - -rot + ( R G B 洞 x"-y" x"+y" ) dup -.125 > swap ( R G B 洞 x"-y" x"+y">-.25 x"+y" ) .125 < rot ( R G B 洞 x"+y">-.25 x"+y"<.25 x"-y" ) dup .125 < swap ( R G B 洞 x"+y">-.25 x"+y"<.25 x"-y"<.25 x"-y" ) -.125 > ( R G B 洞 x"+y">-.25 x"+y"<.25 x"-y"<.25 x"-y">-.25 ) * * * * >r rot r> + -rot ( R' G B ) ; : 青 ( R G B X Y A -- R G' B' ) 座標轉換 ( R G B 洞 x" y" ) 2dup + .0625 < -rot ( R G B 洞 x"+y"<.125 x" y" ) dup >r - -.0625 > ( R G B 洞 x"+y">-.25 x"-y">-.125 ) r> -.0625 > ( R G B 洞 x"+y"<-.25 x"-y"<-.125 y">-.125 ) * * * >r swap r@ + swap r> + ( R G' B' ) ; : 紫 ( R G B X Y A -- R' G B' ) 座標轉換 ( R G B 洞 x" y" ) swap over - ( R G B 洞 y" x"-y" ) dup -.125 > swap ( R G B 洞 x"-y">-.25 x"-y" ) .125 < rot ( R G B 洞 x"-y">-.25 x"-y"<.25 y" ) dup .0625 < swap ( R G B 洞 x"-y">-.25 x"-y"<.25 y" y"<.125 y" ) -.0625 > ( R G B 洞 x"-y">-.25 x"-y"<.25 y" y"<.125 y">-.125 ) * * * * >r rot r@ + -rot r> + ( R' G B' ) ; : 桔 ( R G B X Y A -- R' G' B ) 座標轉換 ( R G B 洞 x" y" ) 2dup - 0 > rot ( R G B 洞 x"-y">0 x" y" ) .125 < rot ( R G B 洞 x"-y">0 y"<.25 x" ) -.125 > ( R G B 洞 x"-y">0 y"<.25 x">-.25 ) * * * >r rot r@ + rot r> 2 / + rot ( R' G' B ) ; \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 七彩板組圖範例 0 0 0 \ 開始要先 全黑 : 例1 \ 彩板拼成 方形 .500 .625 .000 綠 .375 .500 .000 黃 .687 .625 .000 藍 .625 .500 .000 紅 .500 .437 .000 青 .437 .312 .000 紫 .625 .375 .000 桔 網格 ; : 例2 \ 彩板散開 各自每 10 秒轉 1 圈 .375 .750 0 1 中間值 綠 .250 .500 0 1 中間值 黃 .812 .750 0 1 中間值 藍 .656 .593 0 1 中間值 紅 .500 .485 0 1 中間值 青 .437 .184 0 1 中間值 紫 .750 .375 0 1 中間值 桔 網格 ; : 例3 \ 彩板拼成 貓形 .561 .145 .125 綠 \ 腿 .521 .400 .000 黃 \ 身 .400 .456 .625 桔 \ 胸 .345 .698 .000 紅 \ 頭 .405 .819 .000 藍 \ 右耳 .275 .819 .750 青 \ 左耳 .802 .164 .542 紫 \ 尾 網格 ; : 例4 \ 彩板 隨時間週期 翻轉移動 拼成 方形 與 貓型 .500 .625 .000 .561 .145 .125 中間位置方向 綠 \ 腿 .375 .500 .000 .521 .400 .000 中間位置方向 黃 \ 身 .687 .625 .000 .405 .819 .000 中間位置方向 藍 \ 右耳 .625 .500 .000 .345 .698 .000 中間位置方向 紅 \ 頭 .500 .437 .000 .275 .819 .750 中間位置方向 青 \ 左耳 .437 .312 .000 .802 .164 .542 中間位置方向 紫 \ 尾 .625 .375 .000 .400 .456 .625 中間位置方向 桔 \ 胸 網格 ; \ 改下列 可選擇執行 例1, 例2, 例3, 或 例4 例4
七巧板 Redux14
陳爽
'25 Feb 06
\ tangram_12 七巧板 20161118 陳爽 \ 指定點 X,Y 至任意點 x,y 之距離 r : r ( X Y -- r ) y swap - dup * x rot - dup * + sqrt ; \ 兩倍圓周率 : 2pi pi pi + ; \ 原點 X,Y 轉軸 A 角度 ( 0 右 .25 上 .5 左 .75 下 ) : 座標轉換 ( X Y A -- x" y" ) >r 2dup r .01 > -rot ( 洞 X Y ) x rot - ( 洞 Y x' ) y rot - ( 洞 x' y' ) over 2 ** over 2 ** + sqrt ( 洞 x' y' r ) 1.04 * -rot ( 洞 r' x' y' ) swap atan2 2pi / r> - 1 mod ( 洞 r' a ) 2pi * ( 洞 r' a' ) 2dup cos * -rot ( 洞 x" r' a' ) sin * ( 洞 x" y" ) ; \ 從某值到另值隨時間週期取對應中間值 : 中間值 ( x0 x1 -- x ) over - t 2 / sin 2 / .5 + * + ; \ 從某位置方向到另位置方向隨時間週期取對應中間位置方向 : 中間位置方向 ( X0 Y0 A0 X1 Y1 A1 -- X Y A ) >r rot r> ( X0 Y0 X1 Y1 A0 A1 ) 中間值 >r ( X0 Y0 X1 Y1 ) >r swap r> ( X0 X1 Y0 Y1 ) 中間值 >r ( X0 X1 ) 中間值 r> r> ( X Y A ) ; : 網格 x .1 mod .006 > y .1 mod .006 > * ; \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ : 綠 ( R G B X Y A -- R G' B ) 座標轉換 ( R G B 洞 x" y" ) 2dup + -.125 > -rot ( R G B 洞 x"+y">-.25 x" y" ) dup >r - .125 < ( R G B 洞 x"+y">-.25 x"-y"<.25 ) r> .125 < ( R G B 洞 x"+y"<-.25 x"-y"<.25 y"<.25 ) * * * rot + swap ( R G' B ) ; : 黃 ( R G B X Y A -- R' G' B ) 座標轉換 ( R G B 洞 x" y" ) 2dup - .125 < -rot ( R G B 洞 x"-y"<.25 x" y" ) over >r + .125 < r> ( R G B 洞 x"-y"<.25 x"+y"<.25 x" ) -.125 > ( R G B 洞 x"-y"<.25 x"+y"<.25 x">-.25 ) * * * >r rot r@ + rot r> + rot ( R' G' B ) ; : 藍 ( R G B X Y A -- R G B' ) 座標轉換 ( R G B 洞 x" y" ) 2dup - -.062 > -rot ( R G B 洞 x"-y">-.125 x" y" ) over >r + -.062 > r> ( R G B 洞 x"-y">0 y"<.25 x" ) .062 < ( R G B 洞 x"-y">0 y"<.25 x">-.25 ) * * * + ( R G B' ) ; : 紅 ( R G B X Y A -- R' G B ) 座標轉換 ( R G B 洞 x" y" ) 2dup - -rot + ( R G B 洞 x"-y" x"+y" ) dup -.125 > swap ( R G B 洞 x"-y" x"+y">-.25 x"+y" ) .125 < rot ( R G B 洞 x"+y">-.25 x"+y"<.25 x"-y" ) dup .125 < swap ( R G B 洞 x"+y">-.25 x"+y"<.25 x"-y"<.25 x"-y" ) -.125 > ( R G B 洞 x"+y">-.25 x"+y"<.25 x"-y"<.25 x"-y">-.25 ) * * * * >r rot r> + -rot ( R' G B ) ; : 青 ( R G B X Y A -- R G' B' ) 座標轉換 ( R G B 洞 x" y" ) 2dup + .0625 < -rot ( R G B 洞 x"+y"<.125 x" y" ) dup >r - -.0625 > ( R G B 洞 x"+y">-.25 x"-y">-.125 ) r> -.0625 > ( R G B 洞 x"+y"<-.25 x"-y"<-.125 y">-.125 ) * * * >r swap r@ + swap r> + ( R G' B' ) ; : 紫 ( R G B X Y A -- R' G B' ) 座標轉換 ( R G B 洞 x" y" ) swap over - ( R G B 洞 y" x"-y" ) dup -.125 > swap ( R G B 洞 x"-y">-.25 x"-y" ) .125 < rot ( R G B 洞 x"-y">-.25 x"-y"<.25 y" ) dup .0625 < swap ( R G B 洞 x"-y">-.25 x"-y"<.25 y" y"<.125 y" ) -.0625 > ( R G B 洞 x"-y">-.25 x"-y"<.25 y" y"<.125 y">-.125 ) * * * * >r rot r@ + -rot r> + ( R' G B' ) ; : 桔 ( R G B X Y A -- R' G' B ) 座標轉換 ( R G B 洞 x" y" ) 2dup - 0 > rot ( R G B 洞 x"-y">0 x" y" ) .125 < rot ( R G B 洞 x"-y">0 y"<.25 x" ) -.125 > ( R G B 洞 x"-y">0 y"<.25 x">-.25 ) * * * >r rot r@ + rot r> 2 / + rot ( R' G' B ) ; \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 七彩板組圖範例 0 0 0 \ 開始要先 全黑 ( 例1. 彩板拼成 方形 .500 .625 .000 綠 .375 .500 .000 黃 .687 .625 .000 藍 .625 .500 .000 紅 .500 .437 .000 青 .437 .312 .000 紫 .625 .375 .000 桔 網格 \ ) ( 例2. 彩板散開 各自每 10 秒轉 1 圈 .375 .750 0 1 中間值 綠 .250 .500 0 1 中間值 黃 .812 .750 0 1 中間值 藍 .656 .593 0 1 中間值 紅 .500 .485 0 1 中間值 青 .437 .184 0 1 中間值 紫 .750 .375 0 1 中間值 桔 網格 \ ) ( 例3. 彩板拼成 貓形 .561 .145 .125 綠 \ 腿 .521 .400 .000 黃 \ 身 .400 .456 .625 桔 \ 胸 .345 .698 .000 紅 \ 頭 .405 .819 .000 藍 \ 右耳 .275 .819 .750 青 \ 左耳 .802 .164 .542 紫 \ 尾 網格 \ ) \ ( 例4. 彩板 隨時間週期 翻轉移動 拼成 方形 與 貓型 .500 .625 .000 .561 .145 .125 中間位置方向 綠 \ 腿 .375 .500 .000 .521 .400 .000 中間位置方向 黃 \ 身 .687 .625 .000 .405 .819 .000 中間位置方向 藍 \ 右耳 .625 .500 .000 .345 .698 .000 中間位置方向 紅 \ 頭 .500 .437 .000 .275 .819 .750 中間位置方向 青 \ 左耳 .437 .312 .000 .802 .164 .542 中間位置方向 紫 \ 尾 .625 .375 .000 .400 .456 .625 中間位置方向 桔 \ 胸 網格 \ )
七巧板 Redux12
陳爽
'25 Feb 06
\ tangram_11 七巧板 20161118 陳爽 \ 指定點 X,Y 至任意點 x,y 之距離 r : r ( X Y -- r ) y swap - dup * x rot - dup * + sqrt ; \ 兩倍圓周率 : 2pi pi pi + ; \ 原點 X,Y 轉軸 A 角度 ( 0 右 .25 上 .5 左 .75 下 ) : 座標轉換 ( X Y A -- x" y" ) >r 2dup r .01 > -rot ( 洞 X Y ) x rot - ( 洞 Y x' ) y rot - ( 洞 x' y' ) over 2 ** over 2 ** + sqrt ( 洞 x' y' r ) 1.04 * -rot ( 洞 r' x' y' ) swap atan2 2pi / r> - 1 mod ( 洞 r' a ) 2pi * ( 洞 r' a' ) 2dup cos * -rot ( 洞 x" r' a' ) sin * ( 洞 x" y" ) ; \ 從某值到另值隨時間週期取對應中間值 : 中間值 ( x0 x1 -- x ) over - t 2 / sin 2 / .5 + * + ; \ 從某位置方向到另位置方向隨時間週期取對應中間位置方向 : 中間位置方向 ( X0 Y0 A0 X1 Y1 A1 -- X Y A ) >r rot r> ( X0 Y0 X1 Y1 A0 A1 ) 中間值 >r ( X0 Y0 X1 Y1 ) >r swap r> ( X0 X1 Y0 Y1 ) 中間值 >r ( X0 X1 ) 中間值 r> r> ( X Y A ) ; : 網格 x .1 mod .006 > y .1 mod .006 > * ; \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ : 綠 ( R G B X Y A -- R G' B ) 座標轉換 ( R G B 洞 x" y" ) 2dup + -.125 > -rot ( R G B 洞 x"+y">-.25 x" y" ) dup >r - .125 < ( R G B 洞 x"+y">-.25 x"-y"<.25 ) r> .125 < ( R G B 洞 x"+y"<-.25 x"-y"<.25 y"<.25 ) * * * rot + swap ( R G' B ) ; : 黃 ( R G B X Y A -- R' G' B ) 座標轉換 ( R G B 洞 x" y" ) 2dup - .125 < -rot ( R G B 洞 x"-y"<.25 x" y" ) over >r + .125 < r> ( R G B 洞 x"-y"<.25 x"+y"<.25 x" ) -.125 > ( R G B 洞 x"-y"<.25 x"+y"<.25 x">-.25 ) * * * >r rot r@ + rot r> + rot ( R' G' B ) ; : 藍 ( R G B X Y A -- R G B' ) 座標轉換 ( R G B 洞 x" y" ) 2dup - -.062 > -rot ( R G B 洞 x"-y">-.125 x" y" ) over >r + -.062 > r> ( R G B 洞 x"-y">0 y"<.25 x" ) .062 < ( R G B 洞 x"-y">0 y"<.25 x">-.25 ) * * * + ( R G B' ) ; : 紅 ( R G B X Y A -- R' G B ) 座標轉換 ( R G B 洞 x" y" ) 2dup - -rot + ( R G B 洞 x"-y" x"+y" ) dup -.125 > swap ( R G B 洞 x"-y" x"+y">-.25 x"+y" ) .125 < rot ( R G B 洞 x"+y">-.25 x"+y"<.25 x"-y" ) dup .125 < swap ( R G B 洞 x"+y">-.25 x"+y"<.25 x"-y"<.25 x"-y" ) -.125 > ( R G B 洞 x"+y">-.25 x"+y"<.25 x"-y"<.25 x"-y">-.25 ) * * * * >r rot r> + -rot ( R' G B ) ; : 青 ( R G B X Y A -- R G' B' ) 座標轉換 ( R G B 洞 x" y" ) 2dup + .0625 < -rot ( R G B 洞 x"+y"<.125 x" y" ) dup >r - -.0625 > ( R G B 洞 x"+y">-.25 x"-y">-.125 ) r> -.0625 > ( R G B 洞 x"+y"<-.25 x"-y"<-.125 y">-.125 ) * * * >r swap r@ + swap r> + ( R G' B' ) ; : 紫 ( R G B X Y A -- R' G B' ) 座標轉換 ( R G B 洞 x" y" ) swap over - ( R G B 洞 y" x"-y" ) dup -.125 > swap ( R G B 洞 x"-y">-.25 x"-y" ) .125 < rot ( R G B 洞 x"-y">-.25 x"-y"<.25 y" ) dup .0625 < swap ( R G B 洞 x"-y">-.25 x"-y"<.25 y" y"<.125 y" ) -.0625 > ( R G B 洞 x"-y">-.25 x"-y"<.25 y" y"<.125 y">-.125 ) * * * * >r rot r@ + -rot r> + ( R' G B' ) ; : 桔 ( R G B X Y A -- R' G' B ) 座標轉換 ( R G B 洞 x" y" ) 2dup - 0 > rot ( R G B 洞 x"-y">0 x" y" ) .125 < rot ( R G B 洞 x"-y">0 y"<.25 x" ) -.125 > ( R G B 洞 x"-y">0 y"<.25 x">-.25 ) * * * >r rot r@ + rot r> 2 / + rot ( R' G' B ) ; \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 七彩板組圖範例 0 0 0 \ 開始要先 全黑 ( 例1. 彩板拼成 方形 .500 .625 .000 綠 .375 .500 .000 黃 .687 .625 .000 藍 .625 .500 .000 紅 .500 .437 .000 青 .437 .312 .000 紫 .625 .375 .000 桔 網格 \ ) ( 例2. 彩板散開 各自每 10 秒轉 1 圈 .375 .750 0 1 中間值 綠 .250 .500 0 1 中間值 黃 .812 .750 0 1 中間值 藍 .656 .593 0 1 中間值 紅 .500 .485 0 1 中間值 青 .437 .184 0 1 中間值 紫 .750 .375 0 1 中間值 桔 網格 \ ) \ ( 例3. 彩板拼成 貓形 .561 .145 .125 綠 \ 腿 .521 .400 .000 黃 \ 身 .400 .456 .625 桔 \ 胸 .345 .698 .000 紅 \ 頭 .405 .819 .000 藍 \ 右耳 .275 .819 .750 青 \ 左耳 .802 .164 .542 紫 \ 尾 網格 \ ) ( 例4. 彩板 隨時間週期 翻轉移動 拼成 方形 與 貓型 .500 .625 .000 .561 .145 .125 中間位置方向 綠 \ 腿 .375 .500 .000 .521 .400 .000 中間位置方向 黃 \ 身 .687 .625 .000 .405 .819 .000 中間位置方向 藍 \ 右耳 .625 .500 .000 .345 .698 .000 中間位置方向 紅 \ 頭 .500 .437 .000 .275 .819 .750 中間位置方向 青 \ 左耳 .437 .312 .000 .802 .164 .542 中間位置方向 紫 \ 尾 .625 .375 .000 .400 .456 .625 中間位置方向 桔 \ 胸 網格 \ )
七巧板 Redux11
陳爽
'25 Feb 06
\ tangram_10 七巧板 20161118 陳爽 \ 任意點 x,y 之座標 原點置中 值域放大 : x x 2 * .5 - ; \ -1 < x < 1 : y y 2 * .5 - ; \ -1 < y < 1 \ 指定點 X,Y 至任意點 x,y 之距離 r : r ( X Y -- r ) y .5 - swap - dup * x .5 - rot - dup * + sqrt ; \ 兩倍圓周率 : 2pi pi pi + ; \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 原點 X,Y 轉軸 A 角度 ( 0 右 .25 上 .5 左 .75 下 ) : 座標轉換 ( X Y A -- x" y" ) >r 2dup r .02 > -rot ( 洞 X Y ) x .5 - rot - ( 洞 Y x' ) y -.5 + rot - ( 洞 x' y' ) over 2 ** over 2 ** + sqrt 1.04 * -rot ( 洞 r x' y' ) swap atan2 2pi / r> - 1 mod ( 洞 r a ) 2pi * ( 洞 r a' ) 2dup cos * -rot ( 洞 x" r a' ) sin * ( 洞 x" y" ) ; : 綠 ( R G B X Y A -- R G' B ) 座標轉換 ( R G B 洞 x" y" ) 2dup + -.25 > -rot ( R G B 洞 x"+y">-.25 x" y" ) dup >r - .25 < ( R G B 洞 x"+y">-.25 x"-y"<.25 ) r> .25 < ( R G B 洞 x"+y"<-.25 x"-y"<.25 y"<.25 ) * * * rot + swap ( R G' B ) ; : 黃 ( R G B X Y A -- R' G' B ) 座標轉換 ( R G B 洞 x" y" ) 2dup - .25 < -rot ( R G B 洞 x"-y"<.25 x" y" ) over >r + .25 < r> ( R G B 洞 x"-y"<.25 x"+y"<.25 x" ) -.25 > ( R G B 洞 x"-y"<.25 x"+y"<.25 x">-.25 ) * * * >r rot r@ + rot r> + rot ( R' G' B ) ; : 藍 ( R G B X Y A -- R G B' ) 座標轉換 ( R G B 洞 x" y" ) 2dup - -.125 > -rot ( R G B 洞 x"-y">-.125 x" y" ) over >r + -.125 > r> ( R G B 洞 x"-y">0 y"<.25 x" ) .125 < ( R G B 洞 x"-y">0 y"<.25 x">-.25 ) * * * + ( R G B' ) ; : 紅 ( R G B X Y A -- R' G B ) 座標轉換 ( R G B 洞 x" y" ) 2dup - -rot + ( R G B 洞 x"-y" x"+y" ) dup -.25 > swap ( R G B 洞 x"-y" x"+y">-.25 x"+y" ) .25 < rot ( R G B 洞 x"+y">-.25 x"+y"<.25 x"-y" ) dup .25 < swap ( R G B 洞 x"+y">-.25 x"+y"<.25 x"-y"<.25 x"-y" ) -.25 > ( R G B 洞 x"+y">-.25 x"+y"<.25 x"-y"<.25 x"-y">-.25 ) * * * * >r rot r> + -rot ( R' G B ) ; : 青 ( R G B X Y A -- R G' B' ) 座標轉換 ( R G B 洞 x" y" ) 2dup + .125 < -rot ( R G B 洞 x"+y"<.125 x" y" ) dup >r - -.125 > ( R G B 洞 x"+y">-.25 x"-y">-.125 ) r> -.125 > ( R G B 洞 x"+y"<-.25 x"-y"<-.125 y">-.125 ) * * * >r swap r@ + swap r> + ( R G' B' ) ; : 紫 ( R G B X Y A -- R' G B' ) 座標轉換 ( R G B 洞 x" y" ) swap over - ( R G B 洞 y" x"-y" ) dup -.25 > swap ( R G B 洞 x"-y">-.25 x"-y" ) .25 < rot ( R G B 洞 x"-y">-.25 x"-y"<.25 y" ) dup .125 < swap ( R G B 洞 x"-y">-.25 x"-y"<.25 y" y"<.125 y" ) -.125 > ( R G B 洞 x"-y">-.25 x"-y"<.25 y" y"<.125 y">-.125 ) * * * * >r rot r@ + -rot r> + ( R' G B' ) ; : 桔 ( R G B X Y A -- R' G' B ) 座標轉換 ( R G B 洞 x" y" ) 2dup - 0 > rot ( R G B 洞 x"-y">0 x" y" ) .25 < rot ( R G B 洞 x"-y">0 y"<.25 x" ) -.25 > ( R G B 洞 x"-y">0 y"<.25 x">-.25 ) * * * >r rot r@ + rot r> 2 / + rot ( R' G' B ) ; \ ( A 七彩板組圖範例 0 0 0 \ 開始要先 全黑 ( A1. 拼成 方形 .0000 .2500 0 綠 -.2500 .0000 0 黃 .3750 .2500 0 藍 .2500 .0000 0 紅 .0000 -.1250 0 青 -.1250 -.3750 0 紫 .2500 -.2500 0 桔 \ ) ( A2. 散開 各自每 10 秒轉 1 圈 : a t 10 / negate ; -.2500 .5000 a 綠 -.5000 -.0000 a 黃 .6250 .5000 a 藍 .3125 .1875 a 紅 .0000 -.1250 a 青 -.1250 -.6250 a 紫 .5000 -.2500 a 桔 \ ) ( A3. 拼成 貓形 .1200 -.7100 .1250 綠 \ 腿 .0420 -.2000 .0000 黃 \ 身 -.2000 -.0759 .6250 桔 \ 胸 -.3250 .3855 .0000 紅 \ 頭 -.2000 .6310 .0000 藍 \ 右耳 -.4500 .6310 .7500 青 \ 左耳 .6050 -.6720 .5420 紫 \ 尾 \ ) \ ( A4. 方形 翻轉移動 : a ( x0 x1 -- x ) over - t 2.5 / sin 2 / .5 + * + ; : a ( X0 Y0 A0 X1 Y1 A1 -- X Y A ) >r rot r> ( X0 Y0 X1 Y1 A0 A1 ) a >r ( X0 Y0 X1 Y1 ) >r swap r> ( X0 X1 Y0 Y1 ) a >r ( X0 X1 ) a r> r> ( X Y A ) ; .0000 .2500 .0000 .1200 -.7100 .1250 a 綠 \ 腿 -.2500 .0000 .0000 .0420 -.2000 .0000 a 黃 \ 身 .3750 .2500 .0000 -.2000 .6310 .0000 a 藍 \ 右耳 .2500 .0000 .0000 -.3250 .3855 .0000 a 紅 \ 頭 .0000 -.1250 .0000 -.4500 .6310 .7500 a 青 \ 左耳 -.1250 -.3750 .0000 .6050 -.6720 .5420 a 紫 \ 尾 \ .2500 -.2500 .0000 -.2000 -.0759 .6250 a 桔 \ 胸 \ ) \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ )
七巧板 Redux10
陳爽
'25 Feb 06
\ tangram_08 七巧板 20161118 陳爽 \ 任意點 x,y 之座標 原點置中 值域放大 : x x 2 * .5 - ; \ -1 < x < 1 : y y 2 * .5 - ; \ -1 < y < 1 \ 指定點 X,Y 至任意點 x,y 之距離 r : r ( X Y -- r ) y .5 - swap - dup * x .5 - rot - dup * + sqrt ; \ 兩倍圓周率 : 2pi pi pi + ; \ 負片影像: 0 變 1, 1 變 0 : 反 1 swap - ; \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 原點 X,Y 轉軸 A 角度 ( 0 右 .25 上 .5 左 .75 下 ) : 座標轉換 ( X Y A -- x" y" ) >r 2dup r .02 > -rot ( 洞 X Y ) x .5 - rot - ( 洞 Y x' ) y -.5 + rot - ( 洞 x' y' ) over 2 ** over 2 ** + sqrt 1.04 * -rot ( 洞 r x' y' ) swap atan2 2pi / r> - 1 mod ( 洞 r a ) 2pi * ( 洞 r a' ) 2dup cos * -rot ( 洞 x" r a' ) sin * ( 洞 x" y" ) ; : 綠 ( R G B X Y A -- R G' B ) 座標轉換 ( R G B 洞 x" y" ) 2dup + -.25 > -rot ( R G B 洞 x"+y">-.25 x" y" ) dup >r - .25 < ( R G B 洞 x"+y">-.25 x"-y"<.25 ) r> .25 < ( R G B 洞 x"+y"<-.25 x"-y"<.25 y"<.25 ) * * * rot + swap ( R G' B ) ; : 黃 ( R G B X Y A -- R' G' B ) 座標轉換 ( R G B 洞 x" y" ) 2dup - .25 < -rot ( R G B 洞 x"-y"<.25 x" y" ) over >r + .25 < r> ( R G B 洞 x"-y"<.25 x"+y"<.25 x" ) -.25 > ( R G B 洞 x"-y"<.25 x"+y"<.25 x">-.25 ) * * * >r rot r@ + rot r> + rot ( R' G' B ) ; : 藍 ( R G B X Y A -- R G B' ) 座標轉換 ( R G B 洞 x" y" ) 2dup - -.125 > -rot ( R G B 洞 x"-y">-.125 x" y" ) over >r + -.125 > r> ( R G B 洞 x"-y">0 y"<.25 x" ) .125 < ( R G B 洞 x"-y">0 y"<.25 x">-.25 ) * * * + ( R G B' ) ; : 紅 ( R G B X Y A -- R' G B ) 座標轉換 ( R G B 洞 x" y" ) 2dup - -rot + ( R G B 洞 x"-y" x"+y" ) dup -.25 > swap ( R G B 洞 x"-y" x"+y">-.25 x"+y" ) .25 < rot ( R G B 洞 x"+y">-.25 x"+y"<.25 x"-y" ) dup .25 < swap ( R G B 洞 x"+y">-.25 x"+y"<.25 x"-y"<.25 x"-y" ) -.25 > ( R G B 洞 x"+y">-.25 x"+y"<.25 x"-y"<.25 x"-y">-.25 ) * * * * >r rot r> + -rot ( R' G B ) ; : 青 ( R G B X Y A -- R G' B' ) 座標轉換 ( R G B 洞 x" y" ) 2dup + .125 < -rot ( R G B 洞 x"+y"<.125 x" y" ) dup >r - -.125 > ( R G B 洞 x"+y">-.25 x"-y">-.125 ) r> -.125 > ( R G B 洞 x"+y"<-.25 x"-y"<-.125 y">-.125 ) * * * >r swap r@ + swap r> + ( R G' B' ) ; : 紫 ( R G B X Y A -- R' G B' ) 座標轉換 ( R G B 洞 x" y" ) swap over - ( R G B 洞 y" x"-y" ) dup -.25 > swap ( R G B 洞 x"-y">-.25 x"-y" ) .25 < rot ( R G B 洞 x"-y">-.25 x"-y"<.25 y" ) dup .125 < swap ( R G B 洞 x"-y">-.25 x"-y"<.25 y" y"<.125 y" ) -.125 > ( R G B 洞 x"-y">-.25 x"-y"<.25 y" y"<.125 y">-.125 ) * * * * >r rot r@ + -rot r> + ( R' G B' ) ; : 桔 ( R G B X Y A -- R' G' B ) 座標轉換 ( R G B 洞 x" y" ) 2dup - 0 > rot ( R G B 洞 x"-y">0 x" y" ) .25 < rot ( R G B 洞 x"-y">0 y"<.25 x" ) -.25 > ( R G B 洞 x"-y">0 y"<.25 x">-.25 ) * * * >r rot r@ + rot r> 2 / + rot ( R' G' B ) ; \ ( A 七彩板組圖範例 0 0 0 \ 全黑 ( A1. 拼成方形 .0000 .2500 0 綠 -.2500 .0000 0 黃 .3750 .2500 0 藍 .2500 .0000 0 紅 .0000 -.1250 0 青 -.1250 -.3750 0 紫 .2500 -.2500 0 桔 \ ) ( A2. 方形散開 -.2500 .5000 0 綠 -.5000 -.0000 0 黃 .6250 .5000 0 藍 .3125 .1875 0 紅 .0000 -.1250 0 青 -.1250 -.6250 0 紫 .5000 -.2500 0 桔 \ ) \ ( A3. 貓 .1200 -.7100 .1250 綠 \ 腿 .0420 -.2000 .0000 黃 \ 身 -.2000 -.0759 .6250 桔 \ 胸 -.3250 .3855 .0000 紅 \ 頭 -.2000 .6310 .0000 藍 \ 右耳 -.4500 .6310 .7500 青 \ 左耳 .6050 -.6720 .5420 紫 \ 尾 \ ) \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ )
七巧板 Redux8
陳爽
'25 Feb 06
\ tangram_07 七巧板 20161118 陳爽 \ 任意點 x,y 之座標 原點置中 值域放大 : x x 2 * .5 - ; \ -1 < x < 1 : y y 2 * .5 - ; \ -1 < y < 1 \ 指定點 X,Y 至任意點 x,y 之距離 r : r ( X Y -- r ) y .5 - swap - dup * x .5 - rot - dup * + sqrt ; \ 兩倍圓周率 : 2pi pi pi + ; \ 負片影像: 0 變 1, 1 變 0 : 反 1 swap - ; \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 原點 X,Y 轉軸 A 角度 ( 0 右 .25 上 .5 左 .75 下 ) : 座標轉換 ( X Y A -- x" y" ) >r 2dup r .02 > -rot ( 洞 X Y ) x .5 - rot - ( 洞 Y x' ) y -.5 + rot - ( 洞 x' y' ) over 2 ** over 2 ** + sqrt 1.04 * -rot ( 洞 r x' y' ) swap atan2 2pi / r> - 1 mod ( 洞 r a ) 2pi * ( 洞 r a' ) 2dup cos * -rot ( 洞 x" r a' ) sin * ( 洞 x" y" ) ; : 綠 ( R G B X Y A -- R G' B ) 座標轉換 ( R G B 洞 x" y" ) 2dup + -.25 > -rot ( R G B 洞 x"+y">-.25 x" y" ) dup >r - .25 < ( R G B 洞 x"+y">-.25 x"-y"<.25 ) r> .25 < ( R G B 洞 x"+y"<-.25 x"-y"<.25 y"<.25 ) * * * rot + swap ( R G' B ) ; : 黃 ( R G B X Y A -- R' G' B ) 座標轉換 ( R G B 洞 x" y" ) 2dup - .25 < -rot ( R G B 洞 x"-y"<.25 x" y" ) over >r + .25 < r> ( R G B 洞 x"-y"<.25 x"+y"<.25 x" ) -.25 > ( R G B 洞 x"-y"<.25 x"+y"<.25 x">-.25 ) * * * >r rot r@ + rot r> + rot ( R' G' B ) ; : 藍 ( R G B X Y A -- R G B' ) 座標轉換 ( R G B 洞 x" y" ) 2dup - -.125 > -rot ( R G B 洞 x"-y">-.125 x" y" ) over >r + -.125 > r> ( R G B 洞 x"-y">0 y"<.25 x" ) .125 < ( R G B 洞 x"-y">0 y"<.25 x">-.25 ) * * * + ( R G B' ) ; : 紅 ( R G B X Y A -- R' G B ) 座標轉換 ( R G B 洞 x" y" ) 2dup - -rot + ( R G B 洞 x"-y" x"+y" ) dup -.25 > swap ( R G B 洞 x"-y" x"+y">-.25 x"+y" ) .25 < rot ( R G B 洞 x"+y">-.25 x"+y"<.25 x"-y" ) dup .25 < swap ( R G B 洞 x"+y">-.25 x"+y"<.25 x"-y"<.25 x"-y" ) -.25 > ( R G B 洞 x"+y">-.25 x"+y"<.25 x"-y"<.25 x"-y">-.25 ) * * * * >r rot r> + -rot ( R' G B ) ; : 青 ( R G B X Y A -- R G' B' ) 座標轉換 ( R G B 洞 x" y" ) 2dup + .125 < -rot ( R G B 洞 x"+y"<.125 x" y" ) dup >r - -.125 > ( R G B 洞 x"+y">-.25 x"-y">-.125 ) r> -.125 > ( R G B 洞 x"+y"<-.25 x"-y"<-.125 y">-.125 ) * * * >r swap r@ + swap r> + ( R G' B' ) ; : 紫 ( R G B X Y A -- R' G B' ) 座標轉換 ( R G B 洞 x" y" ) swap over - ( R G B 洞 y" x"-y" ) dup -.25 > swap ( R G B 洞 x"-y">-.25 x"-y" ) .25 < rot ( R G B 洞 x"-y">-.25 x"-y"<.25 y" ) dup .125 < swap ( R G B 洞 x"-y">-.25 x"-y"<.25 y" y"<.125 y" ) -.125 > ( R G B 洞 x"-y">-.25 x"-y"<.25 y" y"<.125 y">-.125 ) * * * * >r rot r@ + -rot r> + ( R' G B' ) ; : 桔 ( R G B X Y A -- R' G' B ) 座標轉換 ( R G B 洞 x" y" ) 2dup - 0 > rot ( R G B 洞 x"-y">0 x" y" ) .25 < rot ( R G B 洞 x"-y">0 y"<.25 x" ) -.25 > ( R G B 洞 x"-y">0 y"<.25 x">-.25 ) * * * >r rot r@ + rot r> 2 / + rot ( R' G' B ) ; \ ( A 七彩板組圖範例 0 0 0 \ 全黑 \ ( A1. 拼成方形 .0000 .2500 0 綠 -.2500 .0000 0 黃 .3750 .2500 0 藍 .2500 .0000 0 紅 .0000 -.1250 0 青 -.1250 -.3750 0 紫 .2500 -.2500 0 桔 \ ) ( A2. 方形散開 -.2500 .5000 0 綠 -.5000 -.0000 0 黃 .6250 .5000 0 藍 .3125 .1875 0 紅 .0000 -.1250 0 青 -.1250 -.6250 0 紫 .5000 -.2500 0 桔 \ ) ( A3. 貓 .1200 -.7100 .1250 綠 \ 腿 .0420 -.2000 .0000 黃 \ 身 -.2000 -.0759 .6250 桔 \ 胸 -.3250 .3855 .0000 紅 \ 頭 -.2000 .6310 .0000 藍 \ 右耳 -.4500 .6310 .7500 青 \ 左耳 .6050 -.6720 .5420 紫 \ 尾 \ ) \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ )
七巧板 Redux7
陳爽
'25 Feb 06
\ 6th try : x x 2 * .5 - ; : y y 2 * .5 - ; \ 縮小置中 : r ( X Y -- r ) y .5 - swap - 2 ** x .5 - rot - 2 ** + sqrt ; : 2pi pi pi + ; : a ( X Y -- a ) y .5 - swap - x .5 - rot - atan2 pi + 2pi / .5 + 1 mod ; : u ( X Y A -- u ) >r 2dup r -rot a r> - 2pi * cos * ; : v ( X Y A -- v ) >r 2dup r -rot a r> - 2pi * sin * ; : 洞 ( X Y -- ) r .03 > ; : 格 .125 mod .01 > * ; : 綠 ( X Y -- ) 2dup x rot - x 格 ( y x-X ) y rot .25 - - y 格 ( x-X y-Y ) >r dup r@ + 1 > over r@ - 0 < * r@ 1 < * swap drop r> drop rot rot 洞 * ; : 藍 ( X Y -- ) 2dup x rot .375 - - x 格 ( y x-X ) y rot .25 - - y 格 ( x-X y-Y ) >r dup r@ - 0 > over r@ + 1.5 > * over 1 < * swap drop r> drop rot rot 洞 * ; : 紅 ( X Y -- ) 2dup x rot .25 - - x 格 ( y x-X ) y rot - y 格 ( x-X y-Y ) >r dup r@ - 0 > over r@ + 1.5 < * over r@ - .5 < * over r@ + 1 > * swap drop r> drop rot rot 洞 * ; : 黃 ( X Y -- ) 2dup x rot .25 + - x 格 ( y x-X ) y rot - y 格 ( x-X y-Y ) >r dup r@ + 1 < over r@ - 0 < * over 0 > * swap drop r> drop rot rot 洞 * ; : 青 ( X Y -- ) 2dup x rot - x 格 ( y x-X ) y rot .125 + - y 格 ( x-X y-Y ) >r r@ .25 > over r@ - 0 > * over r@ + 1 < * swap drop r> drop rot rot 洞 * ; : 紫 ( X Y -- ) 2dup x rot .125 + - x 格 ( y x-X ) y rot .375 + - y 格 ( x-X y-Y ) >r r@ .25 < over r@ - 0 > * over r@ - .5 < * r@ 0 > * swap drop r> drop rot rot 洞 * ; : 桔 ( X Y -- ) 2dup x rot .25 - - x 格 ( y x-X ) y rot .25 + - y 格 ( x-X y-Y ) >r dup r@ - .5 > over 0 > * over 1 < * r@ 0 > * swap drop r> drop rot rot 洞 * ; : 綠 -.25 .5 綠 ; : 黃 -.5 0 黃 ; : 藍 .625 .5 藍 ; : 紅 .3125 .1875 紅 ; : 青 0 -.125 青 ; : 紫 -.125 -.625 紫 ; : 桔 .5 -.25 桔 ; : 靜 綠 黃 藍 紅 青 紫 桔 + + + + + + ; : 座標平移 ( X Y -- x' y' ) x .5 - rot - ( Y x-.5-X ) y -.5 + rot - ( x-.5-X y-.5-Y ) ; : >極座標 ( X Y A -- 洞 r a ) >r 2dup 洞 -rot ( 洞 X Y ) 座標平移 ( 洞 x' y' ) over 2 ** over 2 ** + sqrt -rot ( 洞 r' x' y' ) swap atan2 2pi / r> - 1 mod ( 洞 r a ) ; : 極座標> ( r a -- x" y" ) 2pi * ( r a' ) 2dup cos * -rot ( r*cos(a') r a' ) sin * ( r*cos(a') r*sin(a') ) ; : 座標轉換 ( X Y A -- x" y" ) >極座標 ( 洞 r a ) 極座標> ( 洞 x" y" ) ; : 秒動角度 t 60 / negate ; : 綠 ( X Y A -- ) 座標轉換 ( 洞 x" y" ) 2dup + -.25 > -rot ( 洞 x"+y">-.25 x" y" ) dup >r - .25 < ( 洞 x"+y">-.25 x"-y"<.25 ) r> .25 < ( 洞 x"+y"<-.25 x"-y"<.25 y"<.25 ) * * * ; : 綠 -.25 .5 秒動角度 綠 ; \ 綠 : 黃 ( X Y A -- ) 座標轉換 ( 洞 x" y" ) 2dup - .25 < -rot ( 洞 x"-y"<.25 x" y" ) over >r + .25 < r> ( 洞 x"-y"<.25 x"+y"<.25 x" ) -.25 > ( 洞 x"-y"<.25 x"+y"<.25 x">-.25 ) * * * ; : 黃 -.5 0 秒動角度 黃 ; \ 黃 : 藍 ( X Y A -- ) 座標轉換 ( 洞 x" y" ) 2dup - -.125 > -rot ( 洞 x"-y">-.125 x" y" ) over >r + -.125 > r> ( 洞 x"-y">0 y"<.25 x" ) .125 < ( 洞 x"-y">0 y"<.25 x">-.25 ) * * * ; : 藍 .625 .5 秒動角度 藍 ; \ 藍 : 紅 ( X Y A -- ) 座標轉換 ( 洞 x" y" ) 2dup - -rot + ( 洞 x"-y" x"+y" ) dup -.25 > swap ( 洞 x"-y" x"+y">-.25 x"+y" ) .25 < rot ( 洞 x"+y">-.25 x"+y"<.25 x"-y" ) dup .25 < swap ( 洞 x"+y">-.25 x"+y"<.25 x"-y"<.25 x"-y" ) -.25 > ( 洞 x"+y">-.25 x"+y"<.25 x"-y"<.25 x"-y">-.25 ) * * * * ; : 紅 .3125 .1875 秒動角度 紅 ; \ 紅 : 青 ( X Y A -- ) 座標轉換 ( 洞 x" y" ) 2dup + .125 < -rot ( 洞 x"+y"<.125 x" y" ) dup >r - -.125 > ( 洞 x"+y">-.25 x"-y">-.125 ) r> -.125 > ( 洞 x"+y"<-.25 x"-y"<-.125 y">-.125 ) * * * ; : 青 0 -.125 秒動角度 青 ; \ 青 : 紫 ( X Y A -- ) 座標轉換 ( 洞 x" y" ) swap over - ( 洞 y" x"-y" ) dup -.25 > swap ( 洞 x"-y">-.25 x"-y" ) .25 < rot ( 洞 x"-y">-.25 x"-y"<.25 y" ) dup .125 < swap ( 洞 x"-y">-.25 x"-y"<.25 y" y"<.125 y" ) -.125 > ( 洞 x"-y">-.25 x"-y"<.25 y" y"<.125 y">-.125 ) * * * * ; : 紫 -.125 -.625 秒動角度 紫 ; \ 紫 : 桔 ( X Y A -- ) 座標轉換 ( 洞 x" y" ) 2dup - 0 > rot ( 洞 x"-y">0 x" y" ) .25 < rot ( 洞 x"-y">0 y"<.25 x" ) -.25 > ( 洞 x"-y">0 y"<.25 x">-.25 ) * * * ; : 桔 .5 -.25 秒動角度 桔 ; \ 桔 靜 黃 藍 紅 紫 + + +
七巧板 Redux6
陳爽
'25 Feb 06
\ 5th try 增加/取消 前置反斜線及空格 起動/停止 此段落 ( 綠 黃 藍 紅 青 紫 桔 紅 0 1 0 1 0 1 1 綠 1 1 0 0 1 0 .5 藍 0 0 1 0 1 1 0 ) : x x 2 * .5 - ; : y y 2 * .5 - ; \ 縮小置中 : r ( X Y -- r ) y .5 - swap - 2 ** x .5 - rot - 2 ** + sqrt ; : c ( X Y -- ) r .03 > ; : 格 .125 mod .01 > * ; : 綠 ( X Y -- ) 2dup x rot - x 格 ( y x-X ) y rot .25 - - y 格 ( x-X y-Y ) >r dup r@ + 1 > over r@ - 0 < * r@ 1 < * swap drop r> drop rot rot c * ; : 藍 ( X Y -- ) 2dup x rot .375 - - x 格 ( y x-X ) y rot .25 - - y 格 ( x-X y-Y ) >r dup r@ - 0 > over r@ + 1.5 > * over 1 < * swap drop r> drop rot rot c * ; : 紅 ( X Y -- ) 2dup x rot .25 - - x 格 ( y x-X ) y rot - y 格 ( x-X y-Y ) >r dup r@ - 0 > over r@ + 1.5 < * over r@ - .5 < * over r@ + 1 > * swap drop r> drop rot rot c * ; : 黃 ( X Y -- ) 2dup x rot .25 + - x 格 ( y x-X ) y rot - y 格 ( x-X y-Y ) >r dup r@ + 1 < over r@ - 0 < * over 0 > * swap drop r> drop rot rot c * ; : 青 ( X Y -- ) 2dup x rot - x 格 ( y x-X ) y rot .125 + - y 格 ( x-X y-Y ) >r r@ .25 > over r@ - 0 > * over r@ + 1 < * swap drop r> drop rot rot c * ; : 紫 ( X Y -- ) 2dup x rot .125 + - x 格 ( y x-X ) y rot .375 + - y 格 ( x-X y-Y ) >r r@ .25 < over r@ - 0 > * over r@ - .5 < * r@ 0 > * swap drop r> drop rot rot c * ; : 桔 ( X Y -- ) 2dup x rot .25 - - x 格 ( y x-X ) y rot .25 + - y 格 ( x-X y-Y ) >r dup r@ - .5 > over 0 > * over 1 < * r@ 0 > * swap drop r> drop rot rot c * ; : 綠 -.25 .5 綠 ; : 黃 -.5 0 黃 ; : 藍 .625 .5 藍 ; : 紅 .3125 .1875 紅 ; : 青 0 -.125 青 ; : 紫 -.125 -.625 紫 ; : 桔 .5 -.25 桔 ; : tangram ( 紅 ) 黃 紅 紫 桔 + + + ( 綠 ) 綠 黃 青 桔 2 / + + + ( 藍 ) 藍 青 紫 + + ; tangram
七巧板 Redux5
陳爽
'25 Feb 06
: x1 x 4 t * sin cos / ; : y1 y 4 t * sin cos / ; x1 y1 x1 5* sin y1 5 * sin * + x1 .5 - dup * y1 .5 - dup * + .25 <
Color Ball Redux
Stainless
'25 Feb 06
( 綠 黃 藍 紅 青 紫 桔 紅 0 1 0 1 0 1 1 綠 1 1 0 0 1 0 .5 藍 0 0 1 0 1 1 0 ) : x x 2 * .5 - ; : y y 2 * .5 - ; \ 縮小置中 : 綠 ( X Y -- ) x rot - ( y x-X ) y rot - ( x-X y-Y ) >r dup r@ + 1 > over r@ - 0 < * r@ 1 < * swap drop r> drop ; : 黃 ( X Y -- ) x rot - ( y x-X ) y rot - ( x-X y-Y ) >r dup r@ + 1 < over r@ - 0 < * over 0 > * swap drop r> drop ; : 藍 ( X Y -- ) x rot - ( y x-X ) y rot - ( x-X y-Y ) >r dup r@ - 0 > over r@ + 1.5 > * over 1 < * swap drop r> drop ; : 紅 ( X Y -- ) x rot - ( y x-X ) y rot - ( x-X y-Y ) >r dup r@ - 0 > over r@ + 1.5 < * over r@ - .5 < * over r@ + 1 > * swap drop r> drop ; : 青 ( X Y -- ) x rot - ( y x-X ) y rot - ( x-X y-Y ) >r r@ .25 > over r@ - 0 > * over r@ + 1 < * swap drop r> drop ; : 紫 ( X Y -- ) x rot - ( y x-X ) y rot - ( x-X y-Y ) >r r@ .25 < over r@ - 0 > * over r@ - .5 < * r@ 0 > * swap drop r> drop ; : 桔 ( X Y -- ) x rot - ( y x-X ) y rot - ( x-X y-Y ) >r dup r@ - .5 > over 0 > * over 1 < * r@ 0 > * swap drop r> drop ; : 動 dup t sin * + ; : 綠 -.07 動 .25 動 綠 ; : 黃 -.21 動 .11 動 黃 ; : 藍 .21 動 .23 動 藍 ; : 紅 .07 動 .11 動 紅 ; : 青 -.07 動 -.04 動 青 ; : 紫 -.27 動 -.23 動 紫 ; : 桔 .14 動 -.14 動 桔 ; : tangram ( 紅 ) 黃 紅 紫 桔 + + + ( 綠 ) 綠 黃 青 桔 .5 * + + + ( 藍 ) 藍 青 紫 + + ; tangram
七巧板 Redux4
陳爽
'25 Feb 06
( 綠 黃 藍 紅 青 紫 桔 紅 0 1 0 1 0 1 1 綠 1 1 0 0 1 0 .5 藍 0 0 1 0 1 1 0 ) : x x 2 * .5 - ; : y y 2 * .5 - ; \ 縮小置中 : 綠 ( X Y -- ) x rot - ( y x-X ) y rot - ( x-X y-Y ) >r dup r@ + 1 > over r@ - 0 < * r@ 1 < * swap drop r> drop ; : 黃 ( X Y -- ) x rot - ( y x-X ) y rot - ( x-X y-Y ) >r dup r@ + 1 < over r@ - 0 < * over 0 > * swap drop r> drop ; : 藍 ( X Y -- ) x rot - ( y x-X ) y rot - ( x-X y-Y ) >r dup r@ - 0 > over r@ + 1.5 > * over 1 < * swap drop r> drop ; : 紅 ( X Y -- ) x rot - ( y x-X ) y rot - ( x-X y-Y ) >r dup r@ - 0 > over r@ + 1.5 < * over r@ - .5 < * over r@ + 1 > * swap drop r> drop ; : 青 ( X Y -- ) x rot - ( y x-X ) y rot - ( x-X y-Y ) >r r@ .25 > over r@ - 0 > * over r@ + 1 < * swap drop r> drop ; : 紫 ( X Y -- ) x rot - ( y x-X ) y rot - ( x-X y-Y ) >r r@ .25 < over r@ - 0 > * over r@ - .5 < * r@ 0 > * swap drop r> drop ; : 桔 ( X Y -- ) x rot - ( y x-X ) y rot - ( x-X y-Y ) >r dup r@ - .5 > over 0 > * over 1 < * r@ 0 > * swap drop r> drop ; : 動 dup t sin * + ; : 綠 -.07 動 .25 動 綠 ; : 黃 -.21 動 .11 動 黃 ; : 藍 .21 動 .11 動 藍 ; : 紅 .07 動 .11 動 紅 ; : 青 -.07 動 -.04 動 青 ; : 紫 -.27 動 -.23 動 紫 ; : 桔 .14 動 -.14 動 桔 ; : tangram ( 紅 ) 黃 紅 紫 桔 + + + ( 綠 ) 綠 黃 青 桔 .5 * + + + ( 藍 ) 藍 青 紫 + + ; tangram
七巧板 Redux3
陳爽
'25 Feb 06
( 綠 黃 藍 紅 青 紫 桔 紅 0 1 0 1 0 1 1 綠 1 1 0 0 1 0 .5 藍 0 0 1 0 1 1 0 ) : x x 2 * .5 - ; : y y 2 * .5 - ; \ 縮小置中 : 綠 ( X Y -- ) x rot - ( y x-X ) y rot - ( x-X y-Y ) >r dup r@ + 1 > over r@ - 0 < * r@ 1 < * swap drop r> drop ; : 黃 ( X Y -- ) x rot - ( y x-X ) y rot - ( x-X y-Y ) >r dup r@ + 1 < over r@ - 0 < * over 0 > * swap drop r> drop ; : 藍 ( X Y -- ) x rot - ( y x-X ) y rot - ( x-X y-Y ) >r dup r@ - 0 > over r@ + 1.5 > * over 1 < * swap drop r> drop ; : 紅 ( X Y -- ) x rot - ( y x-X ) y rot - ( x-X y-Y ) >r dup r@ - 0 > over r@ + 1.5 < * over r@ - .5 < * over r@ + 1 > * swap drop r> drop ; : 青 ( X Y -- ) x rot - ( y x-X ) y rot - ( x-X y-Y ) >r r@ .25 > over r@ - 0 > * over r@ + 1 < * swap drop r> drop ; : 紫 ( X Y -- ) x rot - ( y x-X ) y rot - ( x-X y-Y ) >r r@ .25 < over r@ - 0 > * over r@ - .5 < * r@ 0 > * swap drop r> drop ; : 桔 ( X Y -- ) x rot - ( y x-X ) y rot - ( x-X y-Y ) >r dup r@ - .5 > over 0 > * over 1 < * r@ 0 > * swap drop r> drop ; : 綠 -.10 .35 綠 ; : 黃 -.30 .15 黃 ; : 藍 .30 .35 藍 ; : 紅 .10 .15 紅 ; : 青 -.10 -.05 青 ; : 紫 -.38 -.33 紫 ; : 桔 .30 -.25 桔 ; : tangram ( 紅 ) 黃 紅 紫 桔 + + + ( 綠 ) 綠 黃 青 桔 .5 * + + + ( 藍 ) 藍 青 紫 + + ; tangram
七巧板 Redux2
陳爽
'25 Feb 06
( 綠 黃 藍 紅 青 紫 桔 紅 0 1 0 1 0 1 1 綠 1 1 0 0 1 0 .5 藍 0 0 1 0 1 1 0 ) : x x 2 * .5 - ; : y y 2 * .5 - ; \ 縮小置中 : 綠 ( X Y -- ) x rot - ( y x-X ) y rot - ( x-X y-Y ) >r dup r@ + 1 > over r@ - 0 < * r@ 1 < * swap drop r> drop ; : 黃 ( X Y -- ) x rot - ( y x-X ) y rot - ( x-X y-Y ) >r dup r@ + 1 < over r@ - 0 < * over 0 > * swap drop r> drop ; : 藍 ( X Y -- ) x rot - ( y x-X ) y rot - ( x-X y-Y ) >r dup r@ - 0 > over r@ + 1.5 > * over 1 < * swap drop r> drop ; : 紅 ( X Y -- ) x rot - ( y x-X ) y rot - ( x-X y-Y ) >r dup r@ - 0 > over r@ + 1.5 < * over r@ - .5 < * over r@ + 1 > * swap drop r> drop ; : 青 ( X Y -- ) x rot - ( y x-X ) y rot - ( x-X y-Y ) >r r@ .25 > over r@ - 0 > * over r@ + 1 < * swap drop r> drop ; : 紫 ( X Y -- ) x rot - ( y x-X ) y rot - ( x-X y-Y ) >r r@ .25 < over r@ - 0 > * over r@ - .5 < * r@ 0 > * swap drop r> drop ; : 桔 ( X Y -- ) x rot - ( y x-X ) y rot - ( x-X y-Y ) >r dup r@ - .5 > over 0 > * over 1 < * r@ 0 > * swap drop r> drop ; : 綠 .00 .10 綠 ; : 黃 -.05 .05 黃 ; : 藍 .10 .10 藍 ; : 紅 .05 .05 紅 ; : 青 .00 .00 青 ; : 紫 -.07 -.07 紫 ; : 桔 .05 -.05 桔 ; : tangram ( 紅 ) 黃 紅 紫 桔 + + + ( 綠 ) 綠 黃 青 桔 .5 * + + + ( 藍 ) 藍 青 紫 + + ; tangram
七巧板 Redux
陳爽
'25 Feb 06
\ 摺與層的變化 20151222 : n 2 ; : nn n n * ; : 2pi 2 pi * ; \ 中心 到 x,y 距離 a 值域 0 到 1 : r x .5 - 2 ** y .5 - 2 ** + sqrt ; \ 中心 到 x,y 角度 a 值域 0 到 1 : a y .5 - x .5 - atan2 pi + pi / 1 + 2 / .5 - 1 mod ; \ v 從 i/n 到 (i+1)/n 值域 為 0 到 1, 其中 i 為 0,1,...,n-1 : 摺 ( v n -- 摺 ) * 1 mod ; \ v 從 i/n 到 (i+1)/n 值 為 i/n, 其中 i 為 0,1,...,n-1 : 層 ( v n -- 層 ) dup push * floor pop / ; : xx x n 摺 ; : yy y n 摺 ; : 角 a nn 層 ; \ n*n 摺 個別座標 中心 到 xx,yy 距離 rr 值域 0 到 1 : rr xx .5 - 2 ** yy .5 - 2 ** + sqrt 2 * ; : 圓 ( 半徑 -- 圓 ) rr > ; \ n*n 摺 個別座標 中心 到 xx,yy 角度 aa 值域 0 到 1 : aa yy .5 - xx .5 - atan2 pi + pi / 1 + 2 / t 9 / - \ 隨秒數 t 旋轉 3 8 / + \ 修正 起始角度 1 mod ; \ 紅色圓半徑 值域 .55 到 .65 每秒增減 .6 t 2pi * sin .05 * + \ 每秒修正值域 -.05 到 .05 圓 \ 綠色角度 值域 0 到 1 旋轉 (修正各自起始角度) aa a 4 層 - 1 mod \ \ 藍色無 0 \ 透視圓 1 圓
摺與層的變化 Redux
Anonymous
'25 Feb 06
: d dup ; : fract d floor - ; : px x .5 - ; : py y .5 - ; : len px d * py d * + sqrt ; : mix 1 over - z* swap drop ; : f fract 3 over 2 * - over * * ; : power pop d push ; : uvx px py atan2 pi 2 * / .5 + power * ; : uvy len .4 * t .05 * + power * ; : uvz .5 t .01 * + power * ; : v power mod floor ;
Untitled
Anonymous
'25 Feb 06
: p1 x y + 1 > x y - 0 < and ; : p2 x y + 1 < x y - 0 < and ; : p3 x y - 0 > x y + 1.5 > and ; : p4 x y - 0 > x y + 1.5 < and x y - .5 < and x y + 1 > and ; : p5 y .25 > x y - 0 > and x y + 1 < and ; : p6 y .25 < x y - 0 > and x y - .5 < and ; : p7 x y - .5 > ; : 七巧板 p2 p4 p6 + + p7 + p1 p2 p5 + + p7 2 / + p3 p5 p6 + + ; 七巧板
七巧板
陳爽
'25 Feb 06
: sq dup * ; : off t sin / ; x off sq y off sq + 1 dup 1 swap - dup
Untitled
Anonymous
'25 Feb 06
x x * y y * sqrt
Untitled
Anonymous
'25 Feb 06
x random + 2 / x x * y y * * y random + 2 / random
Untitled
Anonymous
'25 Feb 06
: r2 r> r@ swap dup >r ; : a >r >r r2 .2 - + abs .04 < r2 .2 + - abs .04 < r2 drop abs .02 < + + r2 drop .2 < * r2 + .2 < * r> r@ - -.2 > * r> -.2 > * ; : yy .8 y - t 2 * sin abs 5 / + ; : c x t 10 / + + 10 * 1 mod .5 - yy rot * .3 - 6 * .6 mod .3 - ; 1 .55 c a -1 0 c a over + swap dup x .5 - 2 ** yy .5 - 2 ** + sqrt .3 < >r r@ * -rot r@ * -rot r> * -rot .9 x .5 - 2 ** yy .5 - 2 ** + sqrt .3 - abs 0 max - 10 ** >r rot .2 + r@ + rot .2 + r@ + rot 1 + y .1 < .5 * - r> +
Amiga ball
Ivanq
'25 Feb 06
: p y - dup * swap x - dup * + sqrt min ; 1 0.4 0.3 p 0.5 0.2 p 0.6 0.3 p 0.6 0.4 p 0.5 0.5 p 0.4 0.6 p 0.4 0.7 p 0.5 0.8 p 0.6 0.7 p 0.09 swap - 15 *
Ssss Balls
Anonymous
'25 Feb 06
: p y - abs swap x - abs max min ; 1 0.4 0.3 p 0.5 0.2 p 0.6 0.3 p 0.6 0.4 p 0.5 0.5 p 0.4 0.6 p 0.4 0.7 p 0.5 0.8 p 0.6 0.7 p .1 swap - 20 *
Ssss Redux
Anonymous
'25 Feb 06
: p y - dup * swap x - dup * + min ; 1 0.4 0.3 p 0.5 0.2 p 0.6 0.3 p 0.6 0.4 p 0.5 0.5 p 0.4 0.6 p 0.4 0.7 p 0.5 0.8 p 0.6 0.7 p 1 swap - .994 >
Ssss
BradN
'25 Feb 06
: x' x 0.5 - t sin 0.8899 * + ; : y' y 0.5 - t 1.78 * cos 0.2 * + ; : dist x' x' + y' y' + * sqrt ; : xor + abs 2 mod ; : b / floor 599 mod ; : m 289990 * floor ; : a dup rot swap b -rot b xor ; : w dup x' y' atan2 pi / 512 * t 100 * + 256 mod 128 dist / t 500 * + 256 mod rot a * ; 1 w 2 w 4 w 99 w 16 w 32 w 64 w 128 w + + + + + + + 256 / dist * dup dup
<:::::::::::::::::::::()
Shin En
'25 Feb 06
: n t sin 6 + ; \ 每秒 1到3 變化 : x x .5 - ; : y y .99 - ; \ 中心 : s n * pi * sin ; \ n pi 正旋 : r ( x y -- r ) \ 中心到x,y距離 2 ** swap 24 ** + sqrt ; x s y s r \ 模糊菱格 223443 ** \ 強化對比
based on PACMAN
Shin En
'25 Feb 06
\ --- x,y for hole --- : xh ( -- x ) x .5 - ; : yh ( -- y ) y .5 - ; \ --- x,y for wings --- : xw ( -- xw ) xh 249 * ; : yw ( -- yw ) yh .13 + t sin 409 / - 12 * ; \ --- radius at x,y --- : r ( x y -- r ) dup * swap dup * + sqrt ; \ --------------------- : wings ( -- w ) 1 xw cos ( 1 cos[xw] ) t 600000000000000440000000 * sin * ( 1 cos[xw]*sin[t*3] ) xh abs .5 + ( 1 cos[xw]*sin[t*3] |xh|+.5 ) * yw - abs - ( w1 ) 1 xh 8.7 * abs - ( w1 1-|xh*2.4| ) sqrt * ( w1*sqrt[1-|xh*2.4|] ) 0 max ( w2 ) 3 ** 17 * ( w2**8*12 ) 1 min ( w ) ; \ --------------------- : hole ( -- h ) 1 xh yh r ( 1 r ) 3 over / ( 1 r 3/r ) t pi * + ( 1 r 3/r+ts*pi ) sin ( 1 r sin[3/r+ts*pi] ) swap ( 1 sin[3/r+ts*pi] r ) ** - ( 8-sin[3/r+ts*pi]**r ) ; \ --------------------- hole wings - wings
s5hg6hu87yg IS THE CoDe
Anonymous
'25 Feb 06
: x x t sin + .5 mod ; : l y t 3 * sin abs 2 / - 38 * floor = * 2 x .37 - 45 * floor ** floor / 4 mod + ; : lp 0 28672 15 l 28672 14 l 24576 13 l 1408 12 l 3536 13 l 14248 480 9 l 4064 8 l 3 5 l 2311 4 l 2 3 l 1 >= ; : lw 0 992 24 l 8176 13 l 1088 7 l 2176 6 l 3968 5 l 5872 4 l 8176 3 l 8160 2 l 1008 1 l 112 0 l 1 >= ; : lg 0 29296 12 l 29224 11 l 17512 10 l 15896 9 l 4096 8 l 3004 7 l 18302 6 l 16508 5 l 24576 4 l 24584 3 l 24604 2 l 14 1 l 2 0 l 1 >= ; ( www.thesands.ru/forth-demotool ) lp lw dup dup >r >r over + swap 1.5 / lg 1.5 / + r> + 2dup + 0 = 7 / r> +
what on earth!...
Shin En
'25 Feb 06
: s * tan * ; 5 x 10.55 s y 6.8 s t 3 s dup t 2 s dup t 3 s
<:::::::::::::::::::::()
陳昕亞
'25 Feb 06
: i 2dup z* log ; x .4 - t .9 * sin - y .4 - t .2 * sin * i i i log over
Big Flower Redux
陳昕亞
'25 Feb 06
: x x .99 - ; : y 0 y .7 - - ; 1 .143 x x * y y * + sqrt 244 * t .7 * + sin x y atan2 4 ** t .33 * + sin - abs / - dup x * over y *
based on PACMAN
Shin En
'25 Feb 06
\ www.thesands.ru/forth-demotoo; : z t 9 / r@ + 0 mod ; : m .3 - 1 z - * 1 + 512 * floor ; : s x t 7 / sin 2 / + m y m 1901 / ** sin over * 1 mod .997 t 9 / sin .002 * + > z * rot + swap 1 - r> .1 + >r ; 0 >r 0 2371 s s s s s s s s s s r> drop drop dup sqrt over 2 **
GALAXY <:::::::()
Shin En
'25 Feb 06
( basic operations on a complex numbers ) : z x .7 - y .3 - ; ( a complex number stored as a pair of numbers ) : z- swap -rot - push - pop ; ( difference between two complex numbers ) : z1/ over dup * over dup * + rot over / -rot / ; ( 1 divided by a complex number ) : zmodule ( module of a complex number ) dup * swap dup * + sqrt ; : zarg ( arg of a complex number ) swap atan2 ; : e^ ( e raised to a complex power ) over exp over cos * -rot sin swap exp * ; : zln ( logarithm of a complex number ) 2dup zmodule log -rot zarg ; : z^ ( complex number raised to a complex power ) push push zln pop pop z* e^ ; : a 3 1.4 ; : b 1 -1 ; : c -2 t 2 / sin 3 * 1 + ; : d 0 1 ; a z z* b z+ c z z* d z+ c z^ z1/ e^ z* zln 2dup zmodule 8 / swap
Complex Library Redux
陳昕亞
'25 Feb 06
1 y 2 * - x y 2 * 8 ** t 9 / sin * + .5 - abs 2dup > .5 y - * -rot 49 * > 3 9 y 1.3 * - / t 1 mod 6 * + floor 2 mod 1 y 1.8 * - * 4 / * + dup 0 = .53 y - * .45 ** y .5 < * over + over 1 x t 9 / cos + 12 * sin 30 / y .6 - < * + 1.5 y 1.3 * - y .5 > * -
TV road
Shin En
'25 Feb 06
: e .1 ; : x x .5 - ; : y y .5 - ; : x x 7 * cos ; : y y 7 * sin ; : lines >r .5 e * + r> * dup floor - e < ; : net >r x r@ lines y r@ floor x y + r@ lines x y - r> lines or ; t 1 / sin 6 * 2 + net
roaller coaster
Shin En
'25 Feb 06
Next