お絵描きやプログラミングやアーマードコアについて綴っていくつもりです。プログラミングは備忘録的に使うつもりだったりする。
プロフィール

Author:typeすつーか
FC2ブログへようこそ!

最新トラックバック
カウンターです
ついったー

広告とか

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
--/--/-- --:-- スポンサー広告 TB(-) CM(-)
プラグイン使えよという話ですが、直貼りェ...

int start_x= 10;
int start_y= 10;

int goal_x = 400;
int goal_y = 20;

int speed=1;

void setup(){
size(500, 500);
stroke(0,0,255);
strokeWeight(10);
point(start_x, start_y);
stroke(255,0,0);
point(goal_x, goal_y);
stroke(0,0,0);
strokeWeight(0);
initDDA();
}

void draw(){
point(dot_x,dot_y);
drawDDA();
}


int dot_x=start_x;
int dot_y=start_y;

int direct_x;
int direct_y;

int diff_x;
int diff_y;

int diff=0;

void initDDA(){
direct_x=start_x<=goal_x?1:-1;
direct_y=start_y<=goal_y?1:-1;

diff_x=start_x<=goal_x?goal_x-start_x:start_x-goal_x;
diff_y=start_y<=goal_y?goal_y-start_y:start_y-goal_y;

diff=diff_x>=diff_y?diff_x/2:diff_y/2;
}

void drawDDA(){
if(diff_x>=diff_y){
for(int i=0;i dot_x+=direct_x;//毎回x.

//Y方向には誤差が蓄積したときに移動.
diff+=diff_y;
if(diff>=diff_x){
diff-=diff_x;
dot_y+=direct_y;//たまにY.
}
}
}
else{
for(int i = 0; i< speed; i++){
dot_y+=direct_y;//毎回y.

diff+=diff_x;
if(diff>=diff_y){
diff-=diff_y;
dot_x+=direct_x;//たまにx.
}
}
}

if(dot_x < 0|| dot_x > width || dot_y < 0 || dot_y > height){
noLoop();
}
}
スポンサーサイト
2013/04/05 00:47 processing TB(0) CM(0)
コメント















 管理者にだけ表示を許可する

トラックバック
http://stukacoding.blog.fc2.com/tb.php/80-82283fc1
検索フォーム
ブロとも申請フォーム
QRコード
QR
IPv4枯渇時計
linuxコマンド
ぶくろぐ
本棚です
icat
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。