◆連続曲線描画

「◆連続曲線描画」の編集履歴(バックアップ)一覧はこちら

◆連続曲線描画」(2008/09/14 (日) 22:53:47) の最新版変更点

追加された行は緑色になります。

削除された行は赤色になります。

*情報 作者名:はっぱ 引用元:[[なでしこプログラム掲示板「はっぱのサンプル集57」>http://www.himanavi.net/cgi/nade-bbs/cbbs.cgi?mode=al2&namber=734&rev=&no=0]] *概要 ベジェゴン描画:曲線で囲まれた図形を描画する。 曲線描画:曲線を描画する。 *解説 ***引数 座標列:座標(CSV) ***返り値 なし *サンプルプログラム //テスト 線太さは1 塗りスタイルは『べた』 塗り色は$AA9988 『200,200,300,200,300,50,400,50,400,200,500,200,500,250,350,250,200,250』でベジェゴン描画 線色は青色 線太さは3 『120,130,100,150,150,180,180,100,120,50』で曲線描画 *本体 最大区分数とは整数 最大区分数は50 ●ベジェゴン描画(座標列で)  点列とは配列  曲線配列とは配列  点位置とは配列  リピート数とは整数  倍率とは整数  点列は座標列を『,』で区切る  もし(点列の配列要素数)<6ならば   戻る  最大区分数はFLOOR(128/(点列の配列要素数))//エラー対策  点列に点列[0]を配列追加  点列に点列[1]を配列追加  点列に点列[2]を配列追加  点列に点列[3]を配列追加  点列に点列[4]を配列追加  点列に点列[5]を配列追加  リピート数はINT(((点列の配列要素数)-6)/2)  リピート数の回   点位置[0]は点列[回数*2]   点位置[1]は点列[回数*2+1]   点位置[6]は点列[回数*2+2]   点位置[7]は点列[回数*2+3]   倍率はSQRT((点位置[6]-点位置[0])^2+(点位置[7]-点位置[1])^2)とSQRT((点列[回数*2-2]-点位置[6])^2+(点列[回数*2-1]-点位置[7])^2)の割り算   点位置[2]は点位置[0]+(点位置[6]-点列[回数*2-2])*倍率*0.4   点位置[3]は点位置[1]+(点位置[7]-点列[回数*2-1])*倍率*0.4   倍率はSQRT((点位置[0]-点位置[6])^2+(点位置[1]-点位置[7])^2)とSQRT((点位置[0]-点列[回数*2+4])^2+(点位置[1]-点列[回数*2+5])^2)の割り算   点位置[4]は点位置[6]+(点位置[0]-点列[回数*2+4])*倍率*0.4   点位置[5]は点位置[7]+(点位置[1]-点列[回数*2+5])*倍率*0.4   曲線配列に(((点位置を『,』で配列結合)のベジェ曲線)の終点カット)を配列追加  曲線配列は曲線配列を『,』で配列結合  最大区分数は50//エラー対策:解除  母艦に曲線配列で多角形 ●曲線描画(座標列で)  点列とは配列  曲線配列とは配列  点位置とは配列  リピート数とは整数  倍率とは整数  点列は座標列を『,』で区切る  もし(点列の配列要素数)<6ならば   座標列を連続線描画   戻る  リピート数は((点列の配列要素数)-2)/2  リピート数の回   点位置[0]は点列[(回数-1)*2]   点位置[1]は点列[(回数-1)*2+1]   点位置[6]は点列[(回数-1)*2+2]   点位置[7]は点列[(回数-1)*2+3]   もし回数<=1ならば    倍率はSQRT((点位置[0]-点位置[6])^2+(点位置[1]-点位置[7])^2)とSQRT((点位置[0]-点列[(回数-1)*2+4])^2+(点位置[1]-点列[(回数-1)*2+5])^2)の割り算    点位置[4]は点位置[6]+(点位置[0]-点列[(回数-1)*2+4])*倍率*0.4    点位置[5]は点位置[7]+(点位置[1]-点列[(回数-1)*2+5])*倍率*0.4    点位置[2]は点位置[0]+(点位置[4]-点位置[0])*0.7    点位置[3]は点位置[1]+(点位置[5]-点位置[1])*0.7   違えば    もし回数>=リピート数ならば     倍率はSQRT((点位置[6]-点位置[0])^2+(点位置[7]-点位置[1])^2)とSQRT((点列[(回数-1)*2-2]-点位置[6])^2+(点列[(回数-1)*2-1]-点位置[7])^2)の割り算     点位置[2]は点位置[0]+(点位置[6]-点列[(回数-1)*2-2])*倍率*0.4     点位置[3]は点位置[1]+(点位置[7]-点列[(回数-1)*2-1])*倍率*0.4     点位置[4]は点位置[6]+(点位置[2]-点位置[6])*0.7     点位置[5]は点位置[7]+(点位置[3]-点位置[7])*0.7    違えば     倍率はSQRT((点位置[6]-点位置[0])^2+(点位置[7]-点位置[1])^2)とSQRT((点列[(回数-1)*2-2]-点位置[6])^2+(点列[(回数-1)*2-1]-点位置[7])^2)の割り算     点位置[2]は点位置[0]+(点位置[6]-点列[(回数-1)*2-2])*倍率*0.4     点位置[3]は点位置[1]+(点位置[7]-点列[(回数-1)*2-1])*倍率*0.4     倍率はSQRT((点位置[0]-点位置[6])^2+(点位置[1]-点位置[7])^2)とSQRT((点位置[0]-点列[(回数-1)*2+4])^2+(点位置[1]-点列[(回数-1)*2+5])^2)の割り算     点位置[4]は点位置[6]+(点位置[0]-点列[(回数-1)*2+4])*倍率*0.4     点位置[5]は点位置[7]+(点位置[1]-点列[(回数-1)*2+5])*倍率*0.4   曲線配列は点位置を『,』で配列結合   曲線配列のベジェ曲線を連続線描画 ●割り算(左値と右値の)  もし右値が0でなければ   (左値/右値)で戻る  0で戻る ●連続線描画(座標列を)  点列とは配列  点列は座標列を『,』で区切る  (((点列の配列要素数)-2)/2)の回   母艦の点列[(回数-1)*2],点列[(回数-1)*2+1]から点列[(回数-1)*2+2],点列[(回数-1)*2+3]へ線 ●終点カット(座標列の)  点列とは配列  曲線配列とは配列  点列は座標列を『,』で区切る  ((点列の配列要素数)-2)の回   曲線配列に点列[回数-1]を配列追加  (曲線配列を『,』で配列結合)で戻る ●ベジェ曲線(座標列の)  点列とは配列  区分数とは整数  曲線配列とは配列  tとは整数  点列は座標列を『,』で区切る  区分数はINT(SQRT((点列[6]-点列[0])^2+(点列[7]-点列[1])^2)/10)  もし区分数<10ならば   区分数は10  もし区分数>最大区分数ならば   区分数は最大区分数  曲線配列に(0,点列[0],点列[2],点列[4],点列[6]から点位置計算)を配列追加  曲線配列に(0,点列[1],点列[3],点列[5],点列[7]から点位置計算)を配列追加  区分数の回   tは回数/区分数   曲線配列に(t,点列[0],点列[2],点列[4],点列[6]から点位置計算)を配列追加   曲線配列に(t,点列[1],点列[3],点列[5],点列[7]から点位置計算)を配列追加  曲線配列を『,』で配列結合で戻る ●点位置計算(t,P1,P2,P3,P4から)  sとは整数  sは1-t  INT((s^3)*P1+3*(s^2)*t*P2+3*s*(t^2)*P3+(t^3)*P4)で戻る /*曲線&ベジェゴン*ここまで*/ ---- #comment() ----
*情報 作者名:はっぱ 引用元:[[なでしこプログラム掲示板「はっぱのサンプル集57」>http://www.himanavi.net/cgi/nade-bbs/cbbs.cgi?mode=al2&namber=734&rev=&no=0]] *概要 ベジェゴン描画:曲線で囲まれた図形を描画する。 曲線描画:曲線を描画する。 *解説 ***引数 座標列:座標(CSV) ***返り値 なし *サンプルプログラム //テスト 線太さは1 塗りスタイルは『べた』 塗り色は$AA9988 『200,200,300,200,300,50,400,50,400,200,500,200,500,250,350,250,200,250』でベジェゴン描画 線色は青色 線太さは3 『120,130,100,150,150,180,180,100,120,50』で曲線描画 *//本体 最大区分数とは整数 最大区分数は50 ●ベジェゴン描画(座標列で)  点列とは配列  曲線配列とは配列  点位置とは配列  リピート数とは整数  倍率とは整数  点列は座標列を『,』で区切る  もし(点列の配列要素数)<6ならば   戻る  最大区分数はFLOOR(128/(点列の配列要素数))//エラー対策  点列に点列[0]を配列追加  点列に点列[1]を配列追加  点列に点列[2]を配列追加  点列に点列[3]を配列追加  点列に点列[4]を配列追加  点列に点列[5]を配列追加  リピート数はINT(((点列の配列要素数)-6)/2)  リピート数の回   点位置[0]は点列[回数*2]   点位置[1]は点列[回数*2+1]   点位置[6]は点列[回数*2+2]   点位置[7]は点列[回数*2+3]   倍率はSQRT((点位置[6]-点位置[0])^2+(点位置[7]-点位置[1])^2)とSQRT((点列[回数*2-2]-点位置[6])^2+(点列[回数*2-1]-点位置[7])^2)の割り算   点位置[2]は点位置[0]+(点位置[6]-点列[回数*2-2])*倍率*0.4   点位置[3]は点位置[1]+(点位置[7]-点列[回数*2-1])*倍率*0.4   倍率はSQRT((点位置[0]-点位置[6])^2+(点位置[1]-点位置[7])^2)とSQRT((点位置[0]-点列[回数*2+4])^2+(点位置[1]-点列[回数*2+5])^2)の割り算   点位置[4]は点位置[6]+(点位置[0]-点列[回数*2+4])*倍率*0.4   点位置[5]は点位置[7]+(点位置[1]-点列[回数*2+5])*倍率*0.4   曲線配列に(((点位置を『,』で配列結合)のベジェ曲線)の終点カット)を配列追加  曲線配列は曲線配列を『,』で配列結合  最大区分数は50//エラー対策:解除  母艦に曲線配列で多角形 ●曲線描画(座標列で)  点列とは配列  曲線配列とは配列  点位置とは配列  リピート数とは整数  倍率とは整数  点列は座標列を『,』で区切る  もし(点列の配列要素数)<6ならば   座標列を連続線描画   戻る  リピート数は((点列の配列要素数)-2)/2  リピート数の回   点位置[0]は点列[(回数-1)*2]   点位置[1]は点列[(回数-1)*2+1]   点位置[6]は点列[(回数-1)*2+2]   点位置[7]は点列[(回数-1)*2+3]   もし回数<=1ならば    倍率はSQRT((点位置[0]-点位置[6])^2+(点位置[1]-点位置[7])^2)とSQRT((点位置[0]-点列[(回数-1)*2+4])^2+(点位置[1]-点列[(回数-1)*2+5])^2)の割り算    点位置[4]は点位置[6]+(点位置[0]-点列[(回数-1)*2+4])*倍率*0.4    点位置[5]は点位置[7]+(点位置[1]-点列[(回数-1)*2+5])*倍率*0.4    点位置[2]は点位置[0]+(点位置[4]-点位置[0])*0.7    点位置[3]は点位置[1]+(点位置[5]-点位置[1])*0.7   違えば    もし回数>=リピート数ならば     倍率はSQRT((点位置[6]-点位置[0])^2+(点位置[7]-点位置[1])^2)とSQRT((点列[(回数-1)*2-2]-点位置[6])^2+(点列[(回数-1)*2-1]-点位置[7])^2)の割り算     点位置[2]は点位置[0]+(点位置[6]-点列[(回数-1)*2-2])*倍率*0.4     点位置[3]は点位置[1]+(点位置[7]-点列[(回数-1)*2-1])*倍率*0.4     点位置[4]は点位置[6]+(点位置[2]-点位置[6])*0.7     点位置[5]は点位置[7]+(点位置[3]-点位置[7])*0.7    違えば     倍率はSQRT((点位置[6]-点位置[0])^2+(点位置[7]-点位置[1])^2)とSQRT((点列[(回数-1)*2-2]-点位置[6])^2+(点列[(回数-1)*2-1]-点位置[7])^2)の割り算     点位置[2]は点位置[0]+(点位置[6]-点列[(回数-1)*2-2])*倍率*0.4     点位置[3]は点位置[1]+(点位置[7]-点列[(回数-1)*2-1])*倍率*0.4     倍率はSQRT((点位置[0]-点位置[6])^2+(点位置[1]-点位置[7])^2)とSQRT((点位置[0]-点列[(回数-1)*2+4])^2+(点位置[1]-点列[(回数-1)*2+5])^2)の割り算     点位置[4]は点位置[6]+(点位置[0]-点列[(回数-1)*2+4])*倍率*0.4     点位置[5]は点位置[7]+(点位置[1]-点列[(回数-1)*2+5])*倍率*0.4   曲線配列は点位置を『,』で配列結合   曲線配列のベジェ曲線を連続線描画 ●割り算(左値と右値の)  もし右値が0でなければ   (左値/右値)で戻る  0で戻る ●連続線描画(座標列を)  点列とは配列  点列は座標列を『,』で区切る  (((点列の配列要素数)-2)/2)の回   母艦の点列[(回数-1)*2],点列[(回数-1)*2+1]から点列[(回数-1)*2+2],点列[(回数-1)*2+3]へ線 ●終点カット(座標列の)  点列とは配列  曲線配列とは配列  点列は座標列を『,』で区切る  ((点列の配列要素数)-2)の回   曲線配列に点列[回数-1]を配列追加  (曲線配列を『,』で配列結合)で戻る ●ベジェ曲線(座標列の)  点列とは配列  区分数とは整数  曲線配列とは配列  tとは整数  点列は座標列を『,』で区切る  区分数はINT(SQRT((点列[6]-点列[0])^2+(点列[7]-点列[1])^2)/10)  もし区分数<10ならば   区分数は10  もし区分数>最大区分数ならば   区分数は最大区分数  曲線配列に(0,点列[0],点列[2],点列[4],点列[6]から点位置計算)を配列追加  曲線配列に(0,点列[1],点列[3],点列[5],点列[7]から点位置計算)を配列追加  区分数の回   tは回数/区分数   曲線配列に(t,点列[0],点列[2],点列[4],点列[6]から点位置計算)を配列追加   曲線配列に(t,点列[1],点列[3],点列[5],点列[7]から点位置計算)を配列追加  曲線配列を『,』で配列結合で戻る ●点位置計算(t,P1,P2,P3,P4から)  sとは整数  sは1-t  INT((s^3)*P1+3*(s^2)*t*P2+3*s*(t^2)*P3+(t^3)*P4)で戻る /*曲線&ベジェゴン*ここまで*/ ---- #comment() ----

表示オプション

横に並べて表示:
変化行の前後のみ表示:
ツールボックス

下から選んでください:

新しいページを作成する
ヘルプ / FAQ もご覧ください。