teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

9

追記

2016/12/20 08:16

投稿

gyro16
gyro16

スコア89

title CHANGED
File without changes
body CHANGED
@@ -118,4 +118,6 @@
118
118
 
119
119
  この先のメソッドisIntersect() && isIntersect() と2条件判定でやるはずなので、
120
120
 
121
- あとはその引数の与える順番が分かりません**
121
+ あとはその引数の与える順番が分かりません**
122
+
123
+ 現在はメソッドisIntersect()の実引数の与える順番が分かりません。

8

追記

2016/12/20 08:16

投稿

gyro16
gyro16

スコア89

title CHANGED
File without changes
body CHANGED
File without changes

7

追記

2016/12/20 08:12

投稿

gyro16
gyro16

スコア89

title CHANGED
File without changes
body CHANGED
@@ -44,6 +44,7 @@
44
44
  これを
45
45
  ACとBDが交差するとき に置き換える
46
46
 
47
+
47
48
  ■■
48
49
 
49
50
  下記は交差判定をしようとして誤回答しています。
@@ -111,4 +112,10 @@
111
112
  result = true;
112
113
  }
113
114
  return result;
114
- }
115
+ }
116
+
117
+ **たぶん、メソッドisIntersect()はこれでいいはず。
118
+
119
+ この先のメソッドisIntersect() && isIntersect() と2条件判定でやるはずなので、
120
+
121
+ あとはその引数の与える順番が分かりません**

6

追記

2016/12/20 08:08

投稿

gyro16
gyro16

スコア89

title CHANGED
File without changes
body CHANGED
@@ -49,7 +49,10 @@
49
49
  下記は交差判定をしようとして誤回答しています。
50
50
  下記ソースは模索中です。
51
51
 
52
+ メソッドisIntersect()に与える引数は対角線ACとBDなので、
52
53
 
54
+ 与える引数はisIntersect(x[
55
+
53
56
  ###発生している問題・エラーメッセージ
54
57
 
55
58
  ```
@@ -94,4 +97,18 @@
94
97
  課題に対してアプローチしたことを記載してください
95
98
 
96
99
  ###補足情報(言語/FW/ツール等のバージョンなど)
100
+ メソッドisIntersect()はこう与えられるはず、です。
101
+
102
+ これを対角線ACとBDに与えて、2条件 && してtrue なら、交差しています。
103
+
104
+
105
+ public boolean isIntersect(double x1, double y1, double x2, double y2,
106
+ double x3, double y3, double x4, double y4){
107
+ boolean result = false;
108
+ double ta=(x1-x2)*(y3-y1)+(y1-y2)*(x1-x3);
109
+ double tb=(x1-x2)*(y4-y1)+(y1-y2)*(x1-x4);
110
+ if(ta*tb < 0){
97
- より詳細な情報
111
+ result = true;
112
+ }
113
+ return result;
114
+ }

5

追記

2016/12/20 08:03

投稿

gyro16
gyro16

スコア89

title CHANGED
File without changes
body CHANGED
@@ -28,6 +28,22 @@
28
28
 
29
29
  この2つの条件が成り立つとあります。
30
30
  ●●
31
+
32
+ ABとCDが交差するとき 2条件が成立する
33
+ > tc=(x1-x2)*(y3-y1)+(y1-y2)*(x1-x3)
34
+ > td=(x1-x2)*(y4-y1)+(y1-y2)*(x1-x4)
35
+ >
36
+ > tc*td<0 条件A
37
+ >
38
+ > ta=(x3-x4)*(y1-y3)+(y3-y4)*(x3-x1)
39
+ > tb=(x3-x4)*(y2-y3)+(y3-y4)*(x3-x2)
40
+ >
41
+ > ta*tb<0 条件B
42
+
43
+
44
+ これを
45
+ ACとBDが交差するとき に置き換える
46
+
31
47
  ■■
32
48
 
33
49
  下記は交差判定をしようとして誤回答しています。

4

追記

2016/12/20 07:38

投稿

gyro16
gyro16

スコア89

title CHANGED
File without changes
body CHANGED
@@ -7,24 +7,27 @@
7
7
 
8
8
  点A(x[0],y[0]),点B(x[1],y[1]),点C(x[2],y[2]),点D(x[3],y[3]) です。
9
9
 
10
+ 上記では対角線ACとBDが交差するか、をしたいのです。
10
11
  ■■
11
12
  もっと簡単に-線分交差判定-
12
13
  http://www5d.biglobe.ne.jp/~tomoya03/shtml/algorithm/Intersection.htm
13
-
14
+ ●●
14
-
15
+ ここではABとCDが交差するには、
15
16
  tc=(x1-x2)*(y3-y1)+(y1-y2)*(x1-x3)
16
17
  td=(x1-x2)*(y4-y1)+(y1-y2)*(x1-x4)
17
18
 
18
19
  tc*td<0
19
20
 
20
21
 
21
-
22
22
  ta=(x3-x4)*(y1-y3)+(y3-y4)*(x3-x1)
23
23
  tb=(x3-x4)*(y2-y3)+(y3-y4)*(x3-x2)
24
24
 
25
25
  ta*tb<0
26
26
 
27
27
  上記のものとあわせて、2つの条件判定すれば、2つの線分の交差判定を行うことができます。
28
+
29
+ この2つの条件が成り立つとあります。
30
+ ●●
28
31
  ■■
29
32
 
30
33
  下記は交差判定をしようとして誤回答しています。

3

訂正

2016/12/20 07:32

投稿

gyro16
gyro16

スコア89

title CHANGED
File without changes
body CHANGED
@@ -5,7 +5,7 @@
5
5
  対角線ACとBDが交差する時
6
6
  ”YES"を返し、交差しない時に"NO"を返すプログラムを実現したいです。
7
7
 
8
- 点A(x[0],y[0]),点B(x[1],y[1])点C(x[2],y[2])点D(x[3],y[3]) です。
8
+ 点A(x[0],y[0]),点B(x[1],y[1]),点C(x[2],y[2]),点D(x[3],y[3]) です。
9
9
 
10
10
  ■■
11
11
  もっと簡単に-線分交差判定-
@@ -13,7 +13,7 @@
13
13
 
14
14
 
15
15
  tc=(x1-x2)*(y3-y1)+(y1-y2)*(x1-x3)
16
- tc=(x1-x2)*(y3-y1)+(y1-y2)*(x1-x3)
16
+ td=(x1-x2)*(y4-y1)+(y1-y2)*(x1-x4)
17
17
 
18
18
  tc*td<0
19
19
 

2

追記

2016/12/20 07:21

投稿

gyro16
gyro16

スコア89

title CHANGED
File without changes
body CHANGED
@@ -7,10 +7,26 @@
7
7
 
8
8
  点A(x[0],y[0]),点B(x[1],y[1])点C(x[2],y[2])点D(x[3],y[3]) です。
9
9
 
10
+ ■■
10
11
  もっと簡単に-線分交差判定-
11
12
  http://www5d.biglobe.ne.jp/~tomoya03/shtml/algorithm/Intersection.htm
12
13
 
13
14
 
15
+ tc=(x1-x2)*(y3-y1)+(y1-y2)*(x1-x3)
16
+ tc=(x1-x2)*(y3-y1)+(y1-y2)*(x1-x3)
17
+
18
+ tc*td<0
19
+
20
+
21
+
22
+ ta=(x3-x4)*(y1-y3)+(y3-y4)*(x3-x1)
23
+ tb=(x3-x4)*(y2-y3)+(y3-y4)*(x3-x2)
24
+
25
+ ta*tb<0
26
+
27
+ 上記のものとあわせて、2つの条件判定すれば、2つの線分の交差判定を行うことができます。
28
+ ■■
29
+
14
30
  下記は交差判定をしようとして誤回答しています。
15
31
  下記ソースは模索中です。
16
32
 

1

追記

2016/12/20 07:18

投稿

gyro16
gyro16

スコア89

title CHANGED
File without changes
body CHANGED
@@ -5,6 +5,8 @@
5
5
  対角線ACとBDが交差する時
6
6
  ”YES"を返し、交差しない時に"NO"を返すプログラムを実現したいです。
7
7
 
8
+ 点A(x[0],y[0]),点B(x[1],y[1])点C(x[2],y[2])点D(x[3],y[3]) です。
9
+
8
10
  もっと簡単に-線分交差判定-
9
11
  http://www5d.biglobe.ne.jp/~tomoya03/shtml/algorithm/Intersection.htm
10
12