![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?8acaa2e)
【javaアプレット】マウスにリンクした雪だるまを回転させたい
現在、大小の丸2つで簡単に作った雪だるまをマウスにリンクすることができました。
マウスを右に動かせばそのまま雪だるまも右に動きます。
ここからがわかりません。
理想的には雪だるまは大きい丸を中心に回転させながらマウスの動かす方向に動く感じにしたいのです。
なにかアドバイスをください。
作ってるのに近いプログラム
↓
import java.applet.* ;
import java.awt.*;
import java.awt.event.*;
public class test extends Applet {
int posX = 50;
int posY = 50;
public void paint(Graphics g) {
g.setColor(Color.red);
g.fillOval(posX, posY, 50, 50);
}
public void init () {
this.setSize(200, 200);
this.setVisible(true);
addMouseMotionListener(new MouseMotionAdapter() {
public void mouseMoved(MouseEvent e) {
posX = e.getX();
posY = e.getY();
repaint();
}
});
}
}
A 回答 (4件)
- 最新から表示
- 回答順に表示
No.4
- 回答日時:
public class test extends Applet {
final double PI = 3.14;
int posX = 50;
int posY = 50;
double yukiX = posX + 50;
double yukiY = posY + 10;
double radian = 0;
Timer t = new Timer();
public void paint(Graphics g){
g.setColor(Color.black);
g.drawOval(posX, posY, 50, 50);
g.drawOval((int)yukiX, (int)yukiY, 30, 30);
}
public void init(){
this.setSize(200, 200);
addMouseMotionListener(new MouseMotionAdapter(){
public void mouseMoved(MouseEvent e) {
posX = e.getX();
posY = e.getY();
yukiX = changeYukiX();
yukiY = changeYukiY();
repaint();
}
});
t.schedule(new MyTimer(), 0, 30);
}
public class MyTimer extends TimerTask{
public void run(){
radian +=3;
yukiX = changeYukiX();
yukiY = changeYukiY();
repaint();
}
}
public double changeYukiX(){
return posX + 25 - 15 + 40 * Math.cos(radian * PI / 180);
}
public double changeYukiY(){
return posY + 25 - 15 + 40 * Math.sin(radian * PI / 180);
}
}
三角比については前者さんの回答や学校の教科書などを読んでください。
No.3
- 回答日時:
理解できませんと書かれてしまったので、絵を描いてみました。
大きな円Aはマウスカーソルを追いかけて動く、小さな円Bは円Aの周りをぐるぐる回る (図中の角度θが変わる) というイメージで合っていますか?
ANo.1に書いたのは、円Bの中心座標は
xb = xa + (ra+rb)cosθ
yb = ya - (ra+rb)sinθ
で求められるということです。
xaとyaはマウスカーソルの動きから決まり、raとrbの値は一定。θがどのように変化するかは質問文中にないので、質問者さんが好きに決めてください。
質問者さんがもしまだ三角関数を習っていない学年だったらごめんなさい。
![「【javaアプレット】マウスにリンクした」の回答画像3](http://oshiete.xgoo.jp/_/bucket/oshietegoo/images/media/d/1285559_5497eddfad537/M.jpg)
No.2
- 回答日時:
こうゆうこと??
import java.applet.* ;
import java.awt.*;
import java.awt.event.*;
public class test extends Applet {
int posX = 50;
int posY = 50;
int h=10;
public void paint(Graphics g) {
g.setColor(Color.red);
g.fillOval(posX-(h/20)-5, posY-(h/20)-5, 10+(h/10), 10+(h/10));
}
public void init () {
this.setSize(200, 200);
this.setVisible(true);
addMouseMotionListener(new MouseMotionAdapter() {
public void mouseMoved(MouseEvent e) {
posX = e.getX();
posY = e.getY();
h++;
repaint();
}
});
}
}
この回答への補足
回答ありがとうございます。
しかし、私のイメージとだいぶ違います。
日本語下手でごめんなさい。
わかりやすく言うと・・・
回転している雪だるまが画面上を動き回る感じ?
伝わりますかね?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Java java 入力 3 4 3 出力 ABC DEFG HIJ このようなプログラムの書き方を教えてくだ 2 2022/07/15 14:18
- Ruby 【JAVA】数字をひし形に出力するプログラムについて 2 2022/07/11 23:32
- Java Java プログラム public class Main { public static void 3 2023/08/10 23:46
- Java 直し方について教えて頂きたいです。 4 2022/08/13 02:11
- Java Java 配列<選挙> 4 2023/07/31 15:07
- C言語・C++・C# C# DatagridviewにExcelシートを反映するとエラーが出る 2 2023/05/06 17:12
- Java java final 1 2022/06/10 22:49
- C言語・C++・C# 大量のデータを読み込んで表示する速度を改善したい 8 2023/05/07 13:29
- マウス・キーボード マウスのないパソコン 9 2022/03/30 10:53
- Java javaのクラスの分け方について質問です。 APIの内部用と外部用でクラスを分けたいのですがインター 2 2022/04/26 16:06
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
C# タスク非表示でタイトルバー...
-
C#でのWNetAddConnection3の使...
-
ユーザーコントロールを動的に...
-
大量のデータを読み込んで表示...
-
.Net Compact でのダブルバッフ...
-
1~100までの数字を表示し、か...
-
バイトスワップ
-
javaのプログラミングで作るRPG...
-
Javaには、構造体はないんですか?
-
C言語でunsigned char配列を連...
-
[JAVA]try 内の変数を外で!?
-
C言語 重複しない4ケタの乱数...
-
java キーボード入力された値の...
-
パソコンキーボードで時分秒を...
-
CSVファイルの、列だけ取得したい
-
Javaで計算
-
Java言語 漢字とひらがなの判別
-
JPanelの重ね方/OverlayLayout他
-
インタフェイス実装と抽象クラ...
-
電卓プログラムでかっこを対応...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
C#で、あるクラスのメンバーす...
-
大量のデータを読み込んで表示...
-
Junitテストでvoid戻り値メッソ...
-
Processingでマウスクリックで...
-
C#でのWNetAddConnection3の使...
-
ボタンのイベントで異なるウィ...
-
C#で別のFormへ複数の値を返そ...
-
【Java】画像表示が出来ない!
-
GetDIBits関数の使い方について
-
ボタンの複数割り当てについて
-
Thread.sleepのInterruptedExce...
-
C# DataGridView列カスタマイズ
-
C# MouseHoverを何度も呼ぶには
-
正規表現
-
unityでのC++エラーの原因がわ...
-
C#でキーイベントが発生しない...
-
C# 矢印キーの取得
-
C#から、C++で作成したdll内の...
-
C# visibleプロパティをfalseに...
-
[C#.net]スレッド化された別フ...
おすすめ情報