遊んでたら面白いものができたのでうp
//■ 操作
// 左ドラッグ:描画
// エンターキー:クリア
//■ 変動数
// PUSH_TIME (=t) はマウスが押されてからのフレーム数+1を記録します
#define PUSH_TIME t
#define PI 3.141592
;-----変更可能箇所------------------------------------------------------------------------
//● キャンバスの初期化色 を指定します
#define BACK_COLOR_R 255
#define BACK_COLOR_G 255
#define BACK_COLOR_B 255
//● 描画色の RGB を設定します
// 少数単位で変動させる場合、先頭をdouble型にしないと計算できません
#define DRAW_COLOR_R 10.0 * PUSH_TIME / 4
#define DRAW_COLOR_G 8.3 * PUSH_TIME / 4
#define DRAW_COLOR_B 6.7 * PUSH_TIME / 4
; 10.0 * PUSH_TIME / 4
; 5.0 * PUSH_TIME / 2
; 3.0 * PUSH_TIME
//● 描画する 太さ を設定します ( w = h )
#define DRAW_SIZE sin ( 0.1*PUSH_TIME ) * 12 + 8
; 10
; sin ( 0.1*PUSH_TIME ) * 12 + 8
; cos ( 0.1*PUSH_TIME ) * 14 + 14
; sqrt ( 0.6*PUSH_TIME ) + 1
; sin ( PI / 2 * PUSH_TIME ) * 10 + 8
; sin ( PI * PUSH_TIME + PI/2 ) * 1 + 1 ; <-点線
//● 描画する太さに カーソル速度依存(遅=太) を付加するかどうか設定します
// 4より小さい 場合 DRAW_SIZE をそのまま適用し、
// 4以上 の場合は その数値を最大値とした値 を DRAW_SIZE に付加します
// この設定だけ楽しみたい場合は DRAW_SIZEを 0 にしてください
// 付加する値(速〜遅) = 1 〜 DRAW_SPEED
#define DRAW_SPEED 0
; 13
//● DRAW_SIZE が 負の数になる場合 の処理を設定します
// 0 の場合描画せず、それ以外の場合は絶対値を用います
#define DRAW_SIZE_OVER 1
//● DRAW_SIZE 及び マウスカーソル座標 を タイトルバーに表示させるかどうか を設定します
// 0 の場合表示させず、それ以外の場合は表示します
#define DRAW_SIZE_TITLE 1
;-----------------------------------------------------------------------------------------
#module
#deffunc erection2 int a,int b,int c,int d,int e,int z,int y,int v
w = int(sqrt( abs(a-c) + abs(b-d) )*2)
x = e
if z ! 0 & x <= 0 : x = abs(x)
if z = 0 & x <= 0 : return -1
if y ! 0 : title "Draw "+x+" ("+a+","+b+") sp:"+w
if v >= 4 {
x2 = w : if x2 > v : x2 = v
x2 = v-x2 : if x2 < 1 : x2 = 1
x += x2
}
repeat x*x
f = cnt / x : g = cnt \ x
line c-x/2+f, d-x/2+g, a-x/2+f, b-x/2+g
loop
return
#global
title "Draw" : color BACK_COLOR_R,BACK_COLOR_G,BACK_COLOR_B : boxf
dim mx,2 : dim my,2
repeat : redraw 0
getkey m ; 左クリック判定
if m=0 : t=0
if m {
if t=0 : mx.0=mousex : my.0=mousey : t=1
if t {
mx.1=mousex : my.1=mousey
if mx.0 ! mx.1 | my.0 ! my.1 {
color DRAW_COLOR_R, DRAW_COLOR_G, DRAW_COLOR_B
erection2 mx.1, my.1, mx.0, my.0, DRAW_SIZE, DRAW_SIZE_OVER, DRAW_SIZE_TITLE, DRAW_SPEED
mx.0 = mx.1 : my.0 = my.1
t++
}
}
}
getkey ent,13 ; Enter判定
if ent : color BACK_COLOR_R,BACK_COLOR_G,BACK_COLOR_B : boxf
redraw : await : loop