计算机图形学:多边形交点及实现

一、原理推导和公式说明

1.1 两条线段求交的数学原理

设有两条线段 A B AB AB C D CD CD,它们的端点坐标分别为 A ( x a , y a ) A(x_a, y_a) A(xa,ya), B ( x b , y b ) B(x_b, y_b) B(xb,yb) C ( x c , y c ) C(x_c, y_c) C(xc,yc), D ( x d , y d ) D(x_d, y_d) D(xd,yd)。要找出这两条线段是否相交,我们可以使用参数方程和行列式的概念。

首先,

  • 线段 A B AB AB 的方程:
    { x = x a + t ( x b − x a ) y = y a + t ( y b − y a ) \begin{cases} x = x_a + t(x_b - x_a) \\ y = y_a + t(y_b - y_a) \end{cases} { x=xa+t(xbxa)y=ya+t(ybya)
    其中, t t t [ 0 , 1 ] [0, 1] [0,1] 范围内变化,表示从点 A A A 到点 B B B 的相对位置。

  • 线段 C D CD CD 的方程:
    { x = x c + u ( x d − x c ) y = y c + u ( y d − y c ) \begin{cases} x = x_c + u(x_d - x_c) \\ y = y_c + u(y_d - y_c) \end{cases} { x=xc+u(xdxc)y=yc+u(ydyc)
    其中, u u u [ 0 , 1 ] [0, 1] [0,1] 范围内变化,表示从点 C C C 到点 D D D 的相对位置。

要使两个方程组表示同一个点,则交点的参数应满足:

{ x a + t ( x b − x a ) = x c + u ( x d − x c ) y a + t ( y b −

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

艰默

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值