回答編集履歴

3

誤りを訂正、図形に(x,y)が含まれるかを追記

2019/05/11 06:42

投稿

xebme
xebme

スコア1081

test CHANGED
@@ -12,9 +12,9 @@
12
12
 
13
13
  - C3(x,y): 円の中心の位置(Circleのインスタンス変数 xpos, ypos)
14
14
 
15
- - 距離(M,C3)が C3 の半径 rnd 以内に収まるか。
15
+ - 距離(M,C3)が C3 の半径 rad 以内に収まるか。
16
16
 
17
- - Circle.isIn(x,y):boolean
17
+ - ~~Circle.isIn(x,y):boolean~~Circle.contains(x,y):boolean
18
18
 
19
19
 
20
20
 
@@ -33,3 +33,55 @@
33
33
  **repaintする。**
34
34
 
35
35
  - repaint()して間接的にc3.draw(g)を呼びます。
36
+
37
+
38
+
39
+ ### 図形が点(x,y)を含むかの判定 (2018-05-11)
40
+
41
+ ある図形の上でマウスがクリックされたかを判定するには、java.awt.Shape.contains(x,y)を使います。Shapeを継承するクラスは以下のとおり。
42
+
43
+ - 楕円(円) - java.awt.geom.Ellipse2D
44
+
45
+ - 四角形(正方形) - java.awt.geom.Rectangle2D
46
+
47
+ - 多角形(三角形) - java.awt.Polygon
48
+
49
+
50
+
51
+ Circle,Rect,Triangleクラスでそれぞれインスタンスを保持しておきます。移動したら作り直します。
52
+
53
+
54
+
55
+ **円**
56
+
57
+ ```Java
58
+
59
+ Shape shape = new Ellipse2D.Double(xpos - rad, ypos - rad, rad * 2, rad * 2);
60
+
61
+ ```
62
+
63
+ **正方形**
64
+
65
+ ```Java
66
+
67
+ Shape shape = new Rectangle2D.Double(xpos - width / 2, ypos - height / 2, width, height);
68
+
69
+ ```
70
+
71
+ **三角形**
72
+
73
+ ```Java
74
+
75
+ Shape shape = new Polygon(xs, ys, 3);
76
+
77
+ ```
78
+
79
+ 点(x,y)が図形に含まれるかの判定。
80
+
81
+
82
+
83
+ ```Java
84
+
85
+ shape.contains(x,y);
86
+
87
+ ```

2

java.util.Rnadomに訂正

2019/05/11 06:42

投稿

xebme
xebme

スコア1081

test CHANGED
@@ -22,7 +22,7 @@
22
22
 
23
23
  - Math.random()で乱数(0<=r<1)を得て、整数にする。(0x1000000をかける)
24
24
 
25
- - java.math.RnadomのnextInt()を使って、整数を得る。
25
+ - ~~java.math.Rnadom~~java.util.RnadomのnextInt()を使って、整数を得る。
26
26
 
27
27
  - 上のいずれかの方法で得た整数を Color のコンストラクタの引数に与える。
28
28
 

1

Color -> Circle に訂正

2019/05/09 12:31

投稿

xebme
xebme

スコア1081

test CHANGED
@@ -14,7 +14,7 @@
14
14
 
15
15
  - 距離(M,C3)が C3 の半径 rnd 以内に収まるか。
16
16
 
17
- - Color.isIn(x,y):boolean
17
+ - Circle.isIn(x,y):boolean
18
18
 
19
19
 
20
20
 
@@ -26,7 +26,7 @@
26
26
 
27
27
  - 上のいずれかの方法で得た整数を Color のコンストラクタの引数に与える。
28
28
 
29
- - Color.changeColor():void
29
+ - Circle.changeColor():void
30
30
 
31
31
 
32
32