栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

从法线向量给定的平面到XY平面的映射坐标

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

从法线向量给定的平面到XY平面的映射坐标

您的窗格由法线矢量定义

n=(xn,yn,zn)

为了进行协调转换,我们需要2个基本向量和一个零点的窗格

基本向量

我们选择了那些“自然”适合x / y窗格的样式(有关边缘情况,请参阅下文):

b1=(1,0,zb1)b2=(0,1,zb2)

我们想要

b1 x b2 = n*c
(c const标量)

确保这两个是真正的基础

现在解决这个问题:

b1 x b2= (0*zb2-zb1*1,zb1*0-1*zb2,1*1-0*0) = (zb1,zb2,1)zb1*c=xnzb2*c=yn1*c=znc=zn,zb2=yn/c=yn/znzb1=xn/c=xn/znb1=(1,0,yn/zn)b2=(0,1,xn/zn)

并将其标准化

bv1=(1,0,yn/zn)*sqrt(1+(yn/zn*yn/zn))bv2=(0,1,yn/zn)*sqrt(1+(xn/zn*xn/zn))

边缘情况是,当zn = 0时:在这种情况下,法线向量与x /
y窗格平行,并且不存在自然的基本向量,因此,您必须通过美观的POV选择基本的b1和b2向量并通过相同的解决方案过程,或者只是选择了bv1和bv2。

零点

您在OQ中没有提到窗格的锚点,但是有必要将窗格与无限个并行窗格族区分开来。

如果锚点为(0,0,0),则这是坐标转换的理想锚点,并且窗格具有

x*xn+y*yn+z*zn=0,(y0,y0,z0)=(0,0,0)

如果没有,我假设您的锚点为(xa,ya,za),并且窗格具有

x*xn+y*yn+z*zn=d

与d const标量。自然的拟合将是窗格的点,它是由原始零点在窗格上的法线投影定义的:

P0=(x0,y0,z0)

(x0, y0, z0) = c * (xn,yn,zn)

解决这个问题

x*xn+y*yn+z*zn=d

c*xn*xn+c*yn*yn+c*zn*zn=d

c=d/(xn*xn+yn*yn+zn*zn)

从而

P0=(x0,y0,z0)=c*(xn,yn,zn)

被发现。

最终转型

通过将窗格的每个点(即要显示的那些点)表示为

P0+x'*bv1+y'*bv2

其中x’和y’为新坐标。既然我们知道P0,bv1和bv2,这是微不足道的。如果不是边缘情况,则bv1.y和bv2.x中的值为零,从而进一步减少了问题。

x’和y’是您想要的新坐标。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/437214.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号