CGAL - 给定一条线 L 和 R^2 中的距离 D,如何找到距 L 距离 D 处平行于 L 的线的方程?
CGAL - Given a line L and distance D in R^2, how to find equations of the lines parallel to L at distance D from L?
我在欧氏平面上有一条直线 L 和一个标量 D,我想找到
平行于 L 且与 L 的距离为 D 的 2 条线。
我怎样才能在 CGAL 中做到这一点?
api CGAL::parallel 用于比较两个 lines/segments/rays
平行,不是为了返回平行线。 apiLine_2<内核>
perpically (const Point_2< Kernel > &p) const 可用于获取
直线 N 垂直于直线 L 的方程,但我似乎找不到
在正常 N 上从 L 获得距离 D 的点的方法。 (如果我能
得到这样一个点P,我可以生成平行于L的直线经过
通过 P 得到我想要的直线方程)。
想法?我确定有一种方法可以使用其他一些 API,但我似乎不能
找到它(我已经通过 2D 和 3D 线性几何非常彻底地查看
内核 API 列表,并检查了名字听起来很有前途的 API。
你can get一般直线方程的a,b,c参数
a * x + b * y + c = 0
然后除以
归一化
d = Sqrt(a * a + b * b)
获得
A * x + B * y + C = 0, where
A = a / d
B = b / d
C = c / d
并使用参数 (A, B, C + D)
和 (A, B, C - D)
制作平行线方程(其中 D 是您的距离)
如果 Line_2.direction 被归一化,使用另一种方法会更简单:
dir = L.direction
p = L.point
p1 = Point(p.x + dir.y * D, p.y - dir.x * D)
p2 = Point(p.x - dir.y * D, p.y + dir.x * D)
L1 = Line_2(p1, dir)
L2 = Line_2(p2, dir)
我在欧氏平面上有一条直线 L 和一个标量 D,我想找到 平行于 L 且与 L 的距离为 D 的 2 条线。 我怎样才能在 CGAL 中做到这一点? api CGAL::parallel 用于比较两个 lines/segments/rays 平行,不是为了返回平行线。 apiLine_2<内核> perpically (const Point_2< Kernel > &p) const 可用于获取 直线 N 垂直于直线 L 的方程,但我似乎找不到 在正常 N 上从 L 获得距离 D 的点的方法。 (如果我能 得到这样一个点P,我可以生成平行于L的直线经过 通过 P 得到我想要的直线方程)。
想法?我确定有一种方法可以使用其他一些 API,但我似乎不能 找到它(我已经通过 2D 和 3D 线性几何非常彻底地查看 内核 API 列表,并检查了名字听起来很有前途的 API。
你can get一般直线方程的a,b,c参数
a * x + b * y + c = 0
然后除以
归一化d = Sqrt(a * a + b * b)
获得
A * x + B * y + C = 0, where
A = a / d
B = b / d
C = c / d
并使用参数 (A, B, C + D)
和 (A, B, C - D)
制作平行线方程(其中 D 是您的距离)
如果 Line_2.direction 被归一化,使用另一种方法会更简单:
dir = L.direction
p = L.point
p1 = Point(p.x + dir.y * D, p.y - dir.x * D)
p2 = Point(p.x - dir.y * D, p.y + dir.x * D)
L1 = Line_2(p1, dir)
L2 = Line_2(p2, dir)