HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2007
0929
SP回転について4解決


SP

リンク

2007/9/29(Sat) 20:17:17|NO.11269


screen 0,640,480 x=100:y=200 repeat redraw 0 color 255,255,255:boxf color 0,0,0 getkey Bkey,66 if Bkey=1&furu=0:furu=-0.1 if furu=0:grect x,y,furu,10,200 if furu!0:furu=furu-0.1:grect x,y,furu,10,200:if furu<=-6.28:furu=0 redraw 1 wait 1 loop
以上がスクリプトです
質問は、「回転の中心を黒い太線の真ん中ではなくて、太線の先端にするにはどうすればよいのですか」
ということです。
まだ、回転に関しては初めてなのでよく分かりません。
よろしくおねがいします。



この記事に返信する


f

リンク

2007/9/29(Sat) 21:07:58|NO.11273

命令自体が「指定した座標を中心として」と言う命令なのだから、
座標を固定でやれば真中を基準に回転する以外に無い。


この命令の単位はラジアンだが分かりやすく度で言えば
45度傾いた時、この黒い棒は45度傾いた状態で、中心位置が何処にあるのかを考えればいい。



*<-中心


・原点

     /
    /
   * <-中心
  /
 /
・原点


計算には三角関数を使う。
知らないなら学ぶ以外無い。



miyabo

リンク

2007/9/29(Sat) 21:39:56|NO.11275

grotateを使ってみた


screen 1,400,400 boxf 195,200,205,400 screen 0,500,500 gmode 3,400,400,200 repeat redraw 0 color 255,255,255:boxf color 0,0,0:pos 250,250 getkey BKey,66 if BKey=1 && furu=0:furu=-0.1 grotate 1,0,0,furu,400,400 if furu!0:furu=furu-0.2 if furu<=-6.2:furu=0 redraw 1 wait 1 loop



arctan

リンク

2007/9/29(Sat) 21:48:14|NO.11276

	screen 0,640,480
x=200:y=320 r=100.0 //棒の半径 repeat redraw 0 color 255,255,255:boxf color 0,0,0 getkey Bkey,66 if Bkey=1&furu=0:furu=-0.1 if furu!0 :furu -= 0.1 if furu<=-12.56 :furu=0 grect x+sin(furu)*r,y-(r+cos(furu)*r),furu,10,r*2 redraw 1 wait 1 loop

こんな感じでしょうか?
三角関数を覚えればできる事も広がるので、興味があれば勉強してみてください。



SP

リンク

2007/9/30(Sun) 08:22:46|NO.11294

ありがとうございました
三角関数は勉強してみようと思います



ONION software Copyright 1997-2023(c) All rights reserved.