十進ベーシック超初心者です。二次元の箱の中に円を置き、そこで衝突を繰り返すプログラムをつくりたいのですが行き詰っています。
箱の中だけでの衝突は、以下のようにプログラムできたのですが、円にぶつかるときどのようにプログラムをくんで跳ね返させればいいかわかりません。どなたか教えて下さい。
SET WINDOW -20,20,-20,20
DRAW GRID(2,2)
PLOT LINES: -10,-10 ;10,-10;10,10;-10,10;-10,-10
DRAW CIRCLE WITH SCALE (2)
LET X=-10
LET Y=-10
LET T=0
LET V=4.53574748
LET A=56.654968
LET VX=COS(A)
LET VY=SIN(A)
100 PLOT LINES:X,Y ;
IF VX>0 THEN
LET LX=20-(10+X)
END IF
IF VX<0 THEN
LET LX=20-(10-X)
END IF
IF VY>0 THEN
LET LY=20-(10+Y)
END IF
IF VY<0 THEN
LET LY=20-(10-Y)
END IF
LET T=MIN(LX/ABS(VX),LY/ABS(VY))
LET X=VX*T+X
LET Y=VY*T+Y
IF T=LX/ABS(VX) THEN
LET VX=-VX
END IF
IF T=LY/ABS(VY) THEN
LET VY=-VY
END IF
GOTO 100
END
A 回答 (1件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
円の大きさがわかっているなら、中心の座標が今どこにあるかを見張ることで、接触したかどうかの判定はできますけど、そういう問題ではないですか?座標系が100x100で中の円が直径20なら、円の中心座標がX>90またはX<10のとき、左右の壁に当たっていることになります。
この回答への補足
回答ありがとうございます。
問題は、座標系が100x100の箱の中に、原点に直径20の固定された円(座標系、円の直径はこの値でなくてもいい)を置き、その箱の中で直径を考えない物体(レーザーのようなもの)を衝突させ続け、レーザーが通った後は黒く表示され、箱の中が真っ黒になっていく様子を見たいのです。直径20の円の中にはレーザーは入らず、円の中は真っ白なままです。ちょっと意味がわからないかもしれないですが、私がつくったプログラムをコピーして実行していただけたら、何がしたいかわかると思います。
私は、箱の中でレーザーを跳ね返させ続けるプログラムをつくることはできたのですが、原点に円を置き、そこにレーザーを跳ね返させるのに苦労しています。
レーザーが円にぶつかる時刻、ぶつかった後のレーザーの進む方向など、どうプログラムをくめばいいかわかりません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBAの繰り返し処理について教えてください。 3 2022/08/02 13:21
- Visual Basic(VBA) 順列をランダムに発生するプログラム 1 2022/11/16 12:16
- Visual Basic(VBA) ファイル全てを .xlsm に変更したところ、プログラムが途中で落ちてしまっています 17 2022/12/07 12:03
- JavaScript プログラムがうまく動きませんレビューお願いします 1 2022/07/10 05:08
- Visual Basic(VBA) VBAが止まります。 3 2022/08/31 14:09
- Visual Basic(VBA) vba GetAsyncKeyState関数について 1 2023/08/24 12:08
- Excel(エクセル) VBAについて 3 2022/06/19 18:19
- Visual Basic(VBA) 動きっぱなしです。止め方とプロシージャの間違いを教えて下さい! 5 2022/08/15 23:08
- JavaScript 追加ボタンを押した際に ok ボタンを押した場合のみ入力値が追記されるようにしたいです 6 2022/05/29 09:57
- Visual Basic(VBA) VBAでoutlook365が起動しません。 4 2022/08/25 13:31
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
グラフの交点の求め方(Excel)
-
エクセルで回転する座標の出し方
-
マインクラフト(pc版)で座標...
-
座標を持った平面範囲に座標を...
-
エクセルである点からの距離で...
-
閉図形の座標の配列が右回りか...
-
エクセルシート上のマウスポイ...
-
【エクセル・マクロ】座標を回...
-
VBで車のアナログスピードメー...
-
図形が重なりあっているかどうか
-
3次元空間上の2つの座標から...
-
visualbasic でform上に正三角...
-
多角形の内部かどうか判定する方法
-
c言語でキーボードから2点の座...
-
VB6のPrinter.ScaleWidth に対...
-
GLで座標を変えて回転させたい
-
以下のプログラムは重心を求め...
-
C言語 配列で座標
-
C++でコマンドプロンプトに図形...
-
任意点を中心とした回転
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
マインクラフト(pc版)で座標...
-
グラフの交点の求め方(Excel)
-
エクセルで回転する座標の出し方
-
閉図形の座標の配列が右回りか...
-
3次元空間上の2つの座標から...
-
エクセルである点からの距離で...
-
求積表の計算方法
-
ダイアログ内コントロールの位...
-
空間上の二点を結ぶ直線上に任...
-
始点、終点の二つの座標と半径...
-
図形が重なりあっているかどうか
-
ワード上Shapeの位置情報を統一...
-
以下のプログラムは重心を求め...
-
シーケンサー(PLC?)で制...
-
ピクチャボックスの座標取得
-
多角形の内部かどうか判定する方法
-
Excel VBA で自在に図形を変化...
-
選択範囲の座標値の抽出
-
座標を持った平面範囲に座標を...
-
VBで、開いているExcelシートの...
おすすめ情報