LGP3講座
LGP3に関する基礎知識からちょっとした小技、
使用している周辺ツールの紹介なんかも
やっていけたらと思います


TOPへ戻る

001 その1 LGP3とは?
002 その2 LGP3に必要なもの
003 その3 2D画像の表示
004 その4 キャラをコントローラで動かす
005 その5 マップチップ表示
006 番外編1 膨大なマップデータ
007 その6 膨大なマップデータの表示
008 膨大なマップをドットスクロール
009 番外編2マップ表示応用編
010 番外編3 フレームスキップ
011 番外編4 応用、モザイク処理
012 番外編5 スプライン、ベジェ
013 番外編6 ラスタースクロール
014 サンプル1 スーパーマリオみたいな挙動

- MultiView (Version 3.4) -

admin mode new input logout
012 番外編5 スプライン、ベジェ 2010/05/17(Mon) 23:48
データはこちら(ZIP形式)

LGP3の計算処理のみで
スプライン曲線とベジェ曲線をやってみました

2次曲線までは良かったのですが
3次曲線ともなると、精度がガクンと落ちますね(^^;
このような処理はやはりDLLで作るべきか…

一応関数化させましたので、以下のとおりです

//スプライン曲線
FUNC KEKKA SPLINE(V1,V2,V3,T)
KEKKA=(((1.0-T)/256)*((1.0-T)/256)*V1+((2*T)/256)*((1.0-T)/256)*V2+(T/256)*(T/256)*V3)/1.0
ENDFUNC

//4点ベジェ曲線
FUNC KEKKA BEZIER(V1,V2,V3,V4,T)
T1=(1.0-T)
A1=((((T1/256)*(T1/256))/256)*(T1/256))*V1
A2=((((T1/256)*(T1/256))/256)*(T/256))*V2*3
A3=((T1/256)*(((T/256)*(T/256))/256))*V3*3
A4=(((( T/256)*( T/256))/256)*( T/256))*V4
KEKKA=(A1+A2+A3+A4)/1.0
ENDFUNC

〜使い方〜

スプライン曲線
SPLINE(V1,V2,V3,T)
V1:1点目のXもしくはY座標(整数)
V2:2点目のXもしくはY座標(整数)
V3:3点目のXもしくはY座標(整数)
T:1点目から3点目までの移動精度(0〜1.0)
返り値:結果のXもしくはY座標(整数)

ベジェ曲線
BEZIER(V1,V2,V3,V4,T)
V1:1点目のXもしくはY座標(整数)
V2:2点目のXもしくはY座標(整数)
V3:3点目のXもしくはY座標(整数)
V4:4点目のXもしくはY座標(整数)
T:1点目から4点目までの移動精度(0〜1.0)
返り値:結果のXもしくはY座標(整数)

実際にサンプルを見てみると
理解しやすいかと思います(^^