Subject: CGAL users discussion list
List archive
Re: [cgal-discuss] Inconsistent results transforming points with Plane_3::to_2d and Plane_3::to_3d
Chronological Thread
- From: Sebastien Loriot <>
- To:
- Subject: Re: [cgal-discuss] Inconsistent results transforming points with Plane_3::to_2d and Plane_3::to_3d
- Date: Tue, 1 Feb 2022 14:10:05 +0100
- Authentication-results: mail2-smtp-roc.national.inria.fr; spf=None ; spf=Pass ; spf=None
- Ironport-data: A9a23:zUEelq4YRc4u2Ru8Te9goAxRtBDBchMFZxGqfqrLsTDasY5as4F+v mEeWmnUMv+KZWahKNF3YYu3phwG65LTn9VnGwprqCFjZn8b8sCt6faxfh6hZXvKRiHgZBs6t JtGMoGowOQcFCK0SsKFa+C5xZVE/fjUAOK6UYYoAwgpLeNeYH5JZSlLxqhp0uaEvfDjW1nX4 Ymq+pWGULOY82cc3lw8u/rrRCxH56yaVAMw5jTSstgW1LN2vyB94KM3fcldHVOgKmVnNrLSq 9L48V2M1jixEyHBpT+Suu2TnkUiGtY+NOUV45Zcc/DKbhNq/kTe3kunXRYRQR8/ttmHozx+4 I8Q66a1eyIzAq/JnsE2DUFoK3hvGJQTrdcrIVDn2SCS50jPcn+p3PA3SU9rZcsX/eF4BWwI/ vsdQNwPRkrb1qTmnfTiELkq25xLwMrDZOvzvll7yTbDDPE6B5XHa6rP7N5cmjw3g6iiGN6HN pJJM2Q+MXwsZTUMOlInUrAjl9ut3GvQQj5Hl2+xgIg4tj27IAtZieCxarI5YOeiTspcmgOUp 3nN4n/iKgoLMcSWjzuD6HOlwOHV9R4XQ6oXHby8s+Fv2RidmzRVBxoRWl+25/K+jyZSRu6zN WROp3QUqJoX7nCpS9/YdEPgkEbdrzslDo84//IB1CmBza/d4gC8D2cCTyJcZNFOiCPQbWx7v rNut4O5bQGDoIF5WlrGqejJ9WLa1Tw9aD5dNXVdHGPp9vG6+Nlr5i8jWOqPB0JcszEYMTT5w jTPsy1nwrtO1YgE0KK0+V2BiDWpznQocuLXzlWINo5GxlkhDGJAW2BOwQaBhRqnBNjCJmRtR FBex6CjABkmVPlhbhClTuQXB62O7P2YKjDailMHN8B/q2/wqyD9IdEMvmEWyKJV3iAsKW6Bj Kj76VM52XOvFCbCgVJfP9joUJxzlcAM6/y/D6qLM7KinaSdhCfepH00DaJh92/ql0conMkC1 WSzIK6R4YIhIf0/llKeHr9DuZdyn3hW7TqKGfjTkkr6uZLDOyb9YepUaDOmM7FihIvZ8VW9z jqqH5HVo/mpeLauPHe/HE96BQxiEEXX8rit+pEOK77eflE7cIzjYteIqY4cl0Vet/w9vo/1E ruVAye0EXLz2i/KLxukcHdmZO+9VJpztyNpMiklPFLu0H8mON794KAafpoxXL8m6O0zla4uH 6dZI52NUqZVVzDK2zUBdp2i/oFvcRKcgwjRbSeoZT4IeYFtGl7S8dj+cwqzryQDV3LltcY3r 7C6+BncRJ4PG1ZrAMrMOaCgylqwuT4Wn+crBxnEJdxaeUPN9ol2Knyp3qVnfZ1UcRian2mUz QebBxsctNLhmY5t/Ymbn72AoqeoD/B6QRhXEmzd2rC8anvX82+l9olfCbracD3YUlT0z6Wsf +Biyf/xba8cl1FQvosgSrtmwP5s59broLMGnA1oEG+RNAauA7JkZ2aDhIxB6/ULybhetg+7H EmI/4ACa7mOPcrkFn8XJRYkPrvfj6BKwmGK4KRnOlj+6Q924KGDDRdYMS6KhXEPN7ByKo4kn bostZJE8QC5kRZ2YN+KgjoOrDaJJ30EFroi79QUXdethQ0sxVVPJ5fbD3ausp2IbtxNNGgsI yOV1PWe3eUCnhKafiphD2XJ0MpcmY8K5EJAwmgEKgnbgdHCnPI2gEBc/Dlfot65FfmbPz+f+ 1SHNnGZ4Y2L9jZswddGBiWiRlkHCxqe9Uj8jVAOkQU1iqVuunPldAUA1SSlpSj1MF6wuhBU+ biZzCDuVjOCkATZwH4pQUA8wxD8ZYUZy+AB8fxL2+yKGpA7ZXzuharGia/kbff4KZtZuXArb tWGMAq9hWMX+MLQT2AG51Gm6Ikt
- Ironport-hdrordr: A9a23:qNUBAa3etmIwzL2vfFAxnQqjBJEkLtp133Aq2lEZdPUnSL3kqy nIpoVm6faUskdqZJhEo7q90ca7MBXhHPJOkO0s1PKZLXLbUQiTXflfBOnZslrd8kTFn4Y3tZ uIMZIObeEYZWIasS+Q2njaLz9P+qjkzEnlv5am856vd21XgmNbgjuRxjz1LqS+fmd7OaY=
- Ironport-phdr: A9a23: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 PIz
- Ironport-sdr: bQERdV/aBPv9RuGSi/TFFkCQsS/VgO08YMS5fnkOpPop7UdzpMIjWpfQ3WGDKJAwAUv0sn1XGA xqOaRbM816iDGpFwxQEydySdX7MCH79tbtIaJq21Z7bwuP3mIG5gNfm2rGNXTQrQEUMBECn6vv AqBb91oQ9Q59WcFhGBJEmq5vyonvTfQUIxISspmd2vc+5ll+nGRUi9yAGwbB/FIrCcMPY+rg6k OTMdSAShN3h4N9Cz+qLUqQuAZuZKzkLrhtZK9SxYcFalOvvZPyWSybAZX8EaKNZxg29YzRHohI K2m7Si/r0lDf+mqQstaYWtTH
Welcome on the mailing list!
As documented here:
https://doc.cgal.org/latest/Kernel_23/classCGAL_1_1Plane__3.html#ad8f355a87bd5ca0fec2d423dbf5909d7
`returns a point q, such that to_2d( to_3d( p )) is equal to p.`
Since (-1,0,0) and (1,0,0) are both converted by to_2d() to (0,0),
there is no way to guarantee that to_3d(to_2d(p3)) == p3 (it is
not a bijection).
Best regards,
Sebastien.
On 1/31/22 5:46 PM, wrote:
Hello!
First time writing on the mailing list, so I hope it is the right place
to discuss, since I'm not super convinced, whether my finding is a bug
or not. I transform a 3d point into 2D using a plane and transform it
back. I would have expected approximately the same point.
I'm using CGAL with Python SWIG bindings in the newest version (commit
2479e35) on Arch Linux. I took a look at the bindings code and could
not find much code, that could do something wrong. Therefore I suspect
the error being somewhere in the C++ part.
Here is my example:
```python
from CGAL.CGAL_Kernel import Plane_3, Point_3
# plane with distance 1 in x-direction
plane_3d_x = Plane_3(1, 0, 0, 1)
# this point obviously lies on the plane
point_3d_unit_x = Point_3(1, 0, 0)
# results into a (0,0)
point_2d = plane_3d_x.to_2d(point_3d_unit_x)
print(str(point_2d))
assert point_2d.x() == 0
assert point_2d.y() == 0
# i would have expected the same point (except for minor numerical
errors)
point_3d_retransformed = plane_3d_x.to_3d(point_2d)
print(str(point_3d_retransformed))
# this assertion fails, since x == -1
assert point_3d_retransformed.x() == 1
assert point_3d_retransformed.y() == 0
assert point_3d_retransformed.z() == 0```
Can anyone tell, if this is a bug or explain to me, why this is
correct?
Thanks in advance!
- Re: [cgal-discuss] Inconsistent results transforming points with Plane_3::to_2d and Plane_3::to_3d, Sebastien Loriot, 02/01/2022
Archive powered by MHonArc 2.6.19+.