HSP Tips / HSPモジュール

ペイントペン

HSPでペイント!

説明

ペイントを行います。 動作はドットを大量に並べたようなかんじ^^;



HSPスクリプト


//Created by As<akicansoft@gmail.com>
	/**/ sysfont 17
	//line x1,y1,x2,y2 と同等
	x1=100	//左上X
	y1=100	//左上Y
	x2=200	//右下Y
	y2=400	//右下Y
	gosub *draw_line	//line命令だと思って使ってください 
	stop

	
*draw_line	//ラインの描画ルーチン
	
	redraw 0
	//初期位置
	sx=x1
	sy=y1



	//大きいほうの値を優先
	//幅の取得
	if x2>x1:xx=x2-x1:else:xx=x1-x2
	if y2>y1:yy=y2-y1:else:yy=y1-y2

	if xx>yy{
		lop=xx
		if yy!0:ss=lop/yy:else:ss=0
	}else{
		lop=yy
		if xx!0:ss=lop/xx:else:ss=0
	}	


	


	//2点間の距離を求める
	if x1>x2:s1=x2-x1:else:s1=x1-x2
	if y1>y2:s2=y2-y1:else:s2=y1-y2
	ssss=int(sqrt(s1*s1+s2*s2))+1



	//ドットライン描画
	repeat ssss
	dir=atan(x2-x1,y2-y1)
	x=sin(dir)*cnt+x1:y=cos(dir)*cnt+y1
	color cnt*2,cnt*2	//psetの色	デフォルトではグラデーションしています。
	/**/pset x,y	//ここをgmode7でアルファブレンドマスク画像に入れかえるだけで高機能ペイントソフト!(多分
	loop

	//赤点
	/**/color 255
	/**/pos x1+10,y1:mes "x1 y2 の位置"
	/**/pset x1,y1

	//青点
	/**/color ,,255
	/**/pos x2+10,y2-12:mes "x2 y2 の位置"
	/**/pset x2,y2
	
	redraw 1
	return