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


HSPTV!掲示板


未解決 解決 停止 削除要請

2017
0324
a角度の変更を緩やかに3解決


a

リンク

2017/3/24(Fri) 18:52:03|NO.78643


screen 0,300,300 x=150 y=150 *main redraw 0 color 255,255,255:boxf color 0,0,0 drc=atan(mousey-x,mousex-y) line x+cos(drc)*100,y+sin(drc)*100,x,y redraw 1 await 10 goto *main

このスクリプトを走らせるとウィンドウの中心から
マウスの座標の方向に線を引きますが、線を引く角度の最高値を設定して
いきなり反対の角度にはいけないよう緩やかに動かしたいのですが分かりません。
教えてくださいませんか?



この記事に返信する


スペース

リンク

2017/3/24(Fri) 20:16:10|NO.78644


最大角度=0.05 drc_最新=0.0 drc_描画=0.0 screen 0,300,300 x=150 y=150 repeat redraw 0 color 255,255,255:boxf color 0,0,0 drc_最新=atan(mousey-x,mousex-y)+M_PI;扱いやすいように最小値を0.0にする。 変化量=drc_最新-drc_描画 if 変化量>=M_PI:変化量-M_PI*2 if 変化量<=(M_PI*-1):変化量+M_PI*-2 drc_描画+limitf(変化量,最大角度*-1,最大角度) line x+cos(drc_描画-M_PI)*100,y+sin(drc_描画-M_PI)*100,x,y title ""+変化量 redraw 1 await 10 loop

自信はありませんが、こんな感じでどうでしょう?



a

リンク

2017/3/24(Fri) 20:26:00|NO.78646

こういう事です!
3.14から-3.14になると反転してしまいますがこれくらいなら自分で直せそうです。
limitfの使いどころをやっと理解しました……
ありがとうございます!



スペース

リンク

2017/3/24(Fri) 21:51:25|NO.78650


if 変化量>=M_PI:変化量-M_PI*2 if 変化量<=(M_PI*-1):変化量+M_PI*-2
この2行でそれは(なんとなく直感で)防いだつもりなのですがよく確認したらダメですね。
ごめんなさい。



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