首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >科恩-萨瑟兰剪辑

科恩-萨瑟兰剪辑
EN

Computer Graphics用户
提问于 2016-05-07 12:46:39
回答 1查看 257关注 0票数 4

分别指定将Xmin=-234,Ymin=156和Xmax=66,Ymax=456的2D窗口转换为Umin=45,Vmin=35和Umax=245,Vmax=185的显示视图所需的转换矩阵和缩放矩阵。

忽略了上面的问题,因为我解决了矩阵,这些信息与我被困在

上的问题有关

我被要求计算2D窗口中两个点A (-100,300)和B (30,-40)的视图端口位置(U1,V1)和(U2,V2),并确定这两个点是否在视图端口内。

根据变换矩阵,我发现(U1,V1)为be (403/3,407),(U2,v2)为be (221,-103)。事实证明,这两个点都在我们的视图端口之外,但它们之间的一部分线在其中。

现在我对下面这个部分感到困惑:

在上面给出的两点A和B之间的线段上应用2D裁剪方法。

我的尝试

delta x= 221-(403/3) = 260/3

delta y= -103 - 406 = -510

M= delta y/ delta x= -5.88

我从U1,V1开始,因为它在我们的视口之上:

Y= 185

X= 403/3 + (185-407)*(delta x/ delta y)

X= 279.48

第1点- (172、185)

这是正确的吗?因为重点现在在视图端口内。至于第二点,我是否也这样做呢?

EN

回答 1

Computer Graphics用户

发布于 2018-03-21 14:54:14

摘自维基百科关于科恩-萨瑟兰的文章

两个端点都位于不同的区域:在这种非平凡的情况下,算法会找到视口区域之外的两个点中的一个(至少有一个点在外部)。然后计算出输出点和扩展视口边界的交点(即用线的参数方程),这个新点取代了输出点。该算法会重复执行,直到发生琐碎的接受或拒绝。

所以是的,因为你的新的第一点在视口内,但你的第二点在外面,情况是不平凡的(即不“去渲染它的全部”或“去放弃它的全部”),它将重复第二点。然后,这两个点将在视口内,因此这是一个微不足道的抽签,不需要进一步的行动。

票数 1
EN
页面原文内容由Computer Graphics提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://computergraphics.stackexchange.com/questions/2410

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档