2012-03-07 4 views
0

При создании проекта для класса мы определяем формы (треугольник, четырехугольник, пятиугольник) без помощи класса Shape.Line2D.Double говорит мне, что линии пересекаются, когда они не делают

В моих проверках, чтобы убедиться, что форма действительна, я использую Line2D.Double linesIntersect(), чтобы определить, существуют ли соединения между двумя наборами точек (p1-p4 x p2-p3). Когда у меня есть вклад в linesIntersect(double,double,double,double,etc) значение:

p1(-1,-1) 
p2(-1,-11) 
p3(5,0) 
p4(5,5) 

Он говорит мне, что линия от p1 к p4 пересекает линию от p2 к p3. Когда на самом деле они должны быть двумя диагональными параллельными линиями.

Любая помощь?

+3

Образец кода, иначе его не было. – cHao

ответ

1

Извините, но в зависимости от того, что вы набрали, p1, p4 не является параллельным p2, p3.

p1(-1,-1) 
p4(5,5) 

p2(-1,-11) 
p3(5,0) 

p1, p4 имеет наклон 1.

p2, p3 имеет наклон 11/6 или 1,83

Если вы хотите, чтобы линии были параллельны, то вам необходимо изменить p3.

p3(5,-5) 
+0

true, мой плохой, но факт остается фактом: две линии начинаются и заканчиваются в точках и ни в коем случае не пересекаются. Мы действительно выяснили, что было не так в нашем использовании linesIntersect(), спасибо за ответ! – user1231771

+0

@ user1231771: Я думаю, что метод пересечения предполагает, что линии проходят через их конечные точки. –