Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

Results of intersection_line_line_xy and intersection_line_line are different

Aperta
#1,398 0 commenti 0 reazioni 1 assegnatario Vedi su GitHub

@tomvanmele ci sta già lavorando.

Dal 15/10/2024.

  • #1535 di @ArianMoeini — aperta

Valutazione

Questa issue non è ancora stata valutata.

Descrizione

bug

I'm not sure if this is related to issue #1320, but it also involves high coordinate values.

intersection_line_line_xy and intersection_line_line are producing different intersection points. The result from intersection_line_line is correct, while the one from intersection_line_line_xy is not. This discrepancy is clearly related to the high coordinate values, as both functions return identical results when the lines are transformed closer to the origin.

To Reproduce

>>> from compas.geometry import Line
>>> from compas.geometry import Point
>>> from compas.geometry import Translation
>>> from compas.geometry import Vector
>>> from compas.geometry import distance_point_point
>>> from compas.geometry import intersection_line_line
>>> from compas.geometry import intersection_line_line_xy
>>> line_a = Line(Point(x=2687071.524742563, y=1221749.0753872169, z=0.0), Point(x=2687069.1419153824, y=1221750.3200979184, z=0.0))
>>> line_b = Line(Point(x=2687069.1328718644, y=1221750.3261498366, z=0.0), Point(x=2687069.006655604, y=1221750.4317925072, z=0.0))
>>> tol = 1e-7
>>> i2d = intersection_line_line_xy(line_a, line_b, tol=tol)
>>> i3d = intersection_line_line(line_a, line_b, tol=tol)[0]
>>> distance_point_point(i2d, i3d)
0.005755306379571995
>>> T = Translation.from_vector(Vector.from_start_end(line_a[0], (0, 0, 0)))
>>> line_a.transform(T)
>>> line_b.transform(T)
>>> i2d = intersection_line_line_xy(line_a, line_b, tol=tol)
>>> i3d = intersection_line_line(line_a, line_b, tol=tol)[0]
>>> distance_point_point(i2d, i3d)
4.965068306494546e-16
Lingua principale
Python
Stelle
386
Fork
123
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Preparare l'ambiente

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di compas-dev/compas

Tutte le issue di compas-dev/compas

Issue simili

Altre issue su Python

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.