【空间点绕任意直线旋转公式】

       罗德里格旋转公式是计算三维空间中,一个向量绕旋转轴旋转给定角度以后得到的新向量的计算公式。百度百科
       其表达式为:
                 {​{R}_{1}}=\cos \theta I+(1-\cos \theta ){​{s}^{T}}s+\sin \theta {​{[s]}_{\times }},s={​{[u,v,w]}^{T}},{​{s}^{T}}s=1
       其中在这里插入图片描述代表旋转角度,在这里插入图片描述代表旋转轴的单位方向向量。

        对于空间中任意直线L,对其描述需要两个变量,即单位方向向量在这里插入图片描述与其上一点在这里插入图片描述。对于空间中任一点在这里插入图片描述,绕直线L逆时针旋转θ后成为点在这里插入图片描述。而点在这里插入图片描述绕直线L旋转后不变,故对于向量{​{P}_{0}}P,根据罗德里格斯公式有:

{​{R}_{1}}({​{P}_{0}}-P)={​{P}_{0}}-{​{P}'}

故点在这里插入图片描述坐标可以表示为

{P}'={​{P}_{0}}-{​{R}_{1}}({​{P}_{0}}-P)

具体代码可以参考其他博主的:

1.matlab版本:(214条消息) 三维空间任意一点绕任意轴线旋转_空间一点绕任意直线旋转_Marc Pony的博客-CSDN博客

2.python版本:(214条消息) 计算一个点 (结构式) 围绕一条直线旋转angle角之后的空间坐标,Python实现_空间点绕直线旋转的坐标_wangeil007的博客-CSDN博客

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
§3.2 直线的方程 §3.2.1 直线的点斜式方程 一、教材分析 直线方程的点斜式给出了根据已知一个点和斜率求直线方程的方法和途径.在求直线的方程中,直线方程的点斜式是基本的,直线方程的斜截式、两点式都是由点斜式推出的.从一次函数y=kx+b(k≠0)引入,自然地过渡到本节课想要解决的问题——求直线的方程问题.在引入过程中,要让学生弄清直线与方程的一一对应关系,理解研究直线可以从研究方程及方程的特征入手. 在推导直线方程的点斜式时,根据直线这一结论,先猜想确定一条直线的条件,再根据猜想得到的条件求出直线的方程. 二、教学目标 1.知识与技能 (1)理解直线方程的点斜式、斜截式的形式特点和适用范围; (2)能正确利用直线的点斜式、斜截式公式直线方程; (3)体会直线的斜截式方程与一次函数的关系. 2.过程与方法 在已知直角坐标系内确定一条直线的几何要素——直线上的一点和直线的倾斜角的基础上,通过师生探讨,得出直线的点斜式方程,学生通过对比理解“截距”与“距离”的区别. 3.情态与价值观 通过让学生体会直线的斜截式方程与一次函数的关系,进一步培养学生数形结合的思想,渗透数学中普遍存在相互联系、相互转化等观点,使学生能用联系的观点看问题. 三、教学重点与难点 教学重点:引导学生根据直线这一结论探讨确定一条直线的条件,并会利用探讨出的条件求出直线的方程. 教学难点:在理解的基础上掌握直线方程的点斜式的特征及适用范围. 四、课时安排 1课时 五、教学设计 (一)导入新课 思路1.方程y=kx+b与直线l之间存在着什么样的关系? 让学生边回答,教师边适当板书.它们之间存在着一一对应关系,即 (1)直线l上任意一点P(x1,y1)的坐标是方程y=kx+b的解. (2)(x1,y1)是方程y=kx+b的解点P(x1,y1)在直线l上. 这样好像直线能用方程表示,这节课我们就来学习、研究这个问题——直线的方程(宣布课题). 思路2.在初中,我们已经学习过一次函数,并接触过一次函数的图象,现在,请同学们作一下回顾: 一次函数y=kx+b的图象是一条直线,它是以满足y=kx+b的每一对x、y的值为坐标的点构成的.由于函数式y=kx+b也可以看作二元一次方程,所以我们可以说,这个方程的解和直线上的点也存在这样的对应关系.这节课我们就来学习直线的方程(宣布课题). (二)推进新课、新知探究、提出问题 ①如果把直线当做结论,那么确定一条直线需要几个条件?如何根据所给条件求出直线的方程? ②已知直线l的斜率k且l经过点P1(x1,y1),如何求直线l的方程? ③方程导出的条件是什么? ④若直线的斜率k不存在,则直线方程怎样表示? ⑤k=与y-y1=k(x-x1)表示同一直线吗? ⑥已知直线l的斜率k且l经过点(0,b),如何求直线l的方程? 讨论结果:①确定一条直线需要两个条件: a.确定一条直线只需知道k、b即可; b.确定一条直线只需知道直线l上两个不同的已知点. ②设P(x,y)为l上任意一点,由经过两点的直线的斜率公式,得k=,化简,得y-y1=k(x-x1). ③方程导出的条件是直线l的斜率k存在. ④a.x=0;b.x=x1. ⑤启发学生回答:方程k=表示的直线l缺少一个点P1(x1,y1),而方程y-y1=k(x-x1)表示的直线l才是整条直线. ⑥y=kx+b. (三)应用示例 思路1 例1 一条直线经过点P1(-2,3),倾斜角α=45°,求这条直线方程,并画出图形. 图1 解:这条直线经过点P1(-2,3),斜率是k=tan45°=1.代入点斜式方程,得y-3=x+2,即x-y+5=0, 这就是所求的直线方程,图形如图1所示. 点评:此例是点斜式方程的直接运用,要求学生熟练掌握,并具备一定的作图能力. 变式训练 求直线y=-(x-2)绕点(2,0)按顺时针方向旋转30°所得的直线方程. 解:设直线y=-(x-2)的倾斜角为α,则tanα=-, 又∵α∈[0°,180°), ∴α=120°. ∴所求的直线的倾斜角为120°-30°=90°.∴直线方程为x=2. 例2 如果设两条直线l1和l2的方程分别是l1:y=k1x+b1,l2:y=k2x+b2,试讨论: (1)当l1∥l2时,两条直线在y轴上的截距明显不同,但哪些量是相等的?为什么? (2)l1⊥l2的条件是什么?
《计算机图形学》课程设计报告 "学生: " "学 号: " " " " " " " " " " " " "学 院: " " "班 级: " " "题 目: "简单图形的绘制 " " " " 指导教师: 职称: 2015年7月1日 目 录 目 录 I 一、选题背景 1 二、算法设计 2 2.1 绘制直线、圆、椭圆、抛物线 2 2.1.1 绘制直线 2 2.1.2 绘制圆 2 2.1.3 绘制椭圆 2 2.1.4 绘制抛物线 2 2.2 三维几何变换 2 三、程序及功能说明 5 3.1 绘制直线、圆、椭圆、抛物线…… 5 3.1.1 绘制直线 5 3.1.2 绘制圆 5 3.1.3 绘制椭圆 5 3.1.4 绘制抛物线 6 3.2 图形的平移 6 3.3 图形的旋转 6 3.4 图形的缩放 7 四、结果分析 7 4.1 绘制直线、圆、椭圆、抛物线 7 4.1.1 直线 7 4.1.2 圆 8 4.1.3 椭圆 8 4.1.4 抛物线 8 4.2 图形的平移 9 4.3 图形的旋转 10 4.4 图形的缩放 11 五、总 结 13 六、课程设计心得体会 14 参考文献 15 源程序 16 一、选题背景 二、算法设计 2.1 绘制直线、圆、椭圆、抛物线 2.1.1 绘制直线 通过两个点的坐标来绘制直线。计算机图形学中二维图形在显示输出之前需要扫描转 换,生成直线算法一般有DDA算法和中点算法。 2.1.2 绘制圆 通过运用圆的参数方程来绘制圆的图形,其中,(a,b)为圆心,r为半径 ,运用参数方程,只需要确定半径的长度和圆心的位置,即可绘制出圆。 2.1.3 绘制椭圆 通过运用椭圆的参数方程来绘制椭圆的图形,其中,是已知的变量,a, b分别为长半轴,短半轴,当确定a和b后,通过参数方程即可得到这个椭圆的方程。 2.1.4 绘制抛物线 根据点绘制抛物线图像是通过拟合完成,根据三个点的坐标,通过数据拟合,得到经 过这三个点的函数关系式,从而再根据这个函数关系式绘制出抛物线上其他的点,形成 一条连续的抛物线;或直接根据已知函数绘制图像是通过已知函数画出图像。 2.2 三维几何变换 三维几何变换是二维几何变换的推广。二维几何变换在齐次坐标空间中可用33的变 换矩阵表示,类似的,三维几何变换在齐次坐标空间中可用44的变换矩阵表示。三 维空间中的点的齐次坐标定义为,其中,为不等与零的任意常数, ,,。亦即点对应4维齐次坐标空间的一条直线: (2.2.1) 通常为了简单起见,取为的齐次坐标。 (1)平移变换 平移变换将点在三个坐标轴方向上分别移动距离,得到新的一点, 它们之间的关系表示为:,其中 。 三维平移变换在其次坐标下的矩阵表示为: (2.2.2) (2)放缩变换 三维放缩变换在齐次坐标下的矩阵表示: (2.2.3) 此变换的参照点为坐标原点,我们可以按下面步骤建立关于空间任一参照点的 缩放变换: (1)平移使落于原点,变换为; (2)进行放缩变换; (3)平移回到原先的位置,变换为。 从而关于参照点的缩放变换为 (2.2.4) (3)旋转变换 给定一点,首先将点和坐标表示成极坐标,即,其中 。将点绕旋转角后,得到。易知: (2.2.5) 上式矩阵形式为: (2.2.6) 从而绕轴旋转角的变换在齐次坐标下的矩阵表示为: (2.2.7) 类似的,绕轴和轴的旋转的变换矩阵分别为: (2.2.8) (2.2.9) 如果要绕空间任意旋转角,可按如下步骤实现: (1)以为原点,为轴建立新的坐标系; (2)求出从坐标系到坐标系的变换; (3)将图形对象变换到坐标系中; (4)在新坐标系中绕轴旋转角,变换为; (5)将图形对象变换为原坐标系中,变换为。 这样绕旋转角的变换为: (2.2.10) 三、程序及功能说明 3.1 绘制直线、圆、椭圆、抛物线…… 3.1.1 绘制直线 plot(A,B) 通过运用matlab中的plot函数画出两点之间的直线图像。其中A,B为直线上的两个点 的坐标,通过两点绘制直线。 3.1.2 绘制圆 function circle(A,R) alpha=0:pi/50:2*pi; %角度[0,2*pi] %R=2;%半径 x=R*cos(alpha)+A(1); y=R*sin(alpha)+A(2); plot(x,y,'-') axis equal 首先先对角度alpha分割成小区间,且求出相应的cos和sin值,再根据输入的半径和 圆心坐标A,带入公式求得圆上的点的坐标,再绘制出图像。 3.1.3 绘制椭圆 function tuocircle(a,b) t=0:pi/20:2*pi; x=a*cos(t); y=b*sin(t); plot(x,y) 首先先对角度t分割成小区间得出相应的cos和sin值,根据再根据
ACM 很全的计算几何模板 基础部分 1.几何公式 5 1.1三角形 5 1.2四边形 5 1.3正n边形 5 1.4圆 5 1.5棱柱 6 1.6棱锥 6 1.7棱台 6 1.8圆柱 6 1.9圆锥 6 1.10圆台 7 1.11球 7 1.12球台 7 1.13球扇形 7 2.直线与线段 7 2.0预备函数 7 2.1判三点是否共线 8 2.2判点是否在线段上 9 2.3判断两点在线段的同一侧 9 2.4判断两点是否在线段的异侧 9 2.5求点关于直线的对称点 10 2.7判断两线段是否相交 10 2.7.1常用版 10 2.7.2不常用版 11 2.8 求两条直线的交点 11 2.9点到直线的最近距离 12 2.10点到线段的最近距离 12 3.多边形 12 3.0 预备浮点函数 12 3.1判定是否是凸多边形 13 3.2判定点是否在多边形内 14 3.3 判定一条线段是否在一个任意多边形内 15 4. 三角形 16 4.0预备函数 16 4.1求三角形的外心 17 4.2求三角形内心 17 4.3求三角形垂心 17 5. 圆 18 5.0预备函数 18 5.1判定直线是否与圆相交 19 5.2判定线段与圆相交 19 5.3判圆和圆相交 19 5.4计算圆上到点p最近点 19 5.5计算直线与圆的交点 20 5.6计算两个圆的交点 20 6. 球面 21 6.0给出地球经度纬度,计算圆心角 21 6.1已知经纬度,计算地球上两点直线距离 21 6.2已知经纬度,计算地球上两点球面距离 21 7. 三维几何的若干模板 22 7.0预备函数 22 7.1判定三点是否共线 23 7.2判定四点是否共面 23 7.1判定点是否在线段上 23 7.2判断点是否在空间三角形上 24 7.3判断两点是否在线段同侧 24 7.4判断两点是否在线段异侧 25 7.5判断两点是否在平面同侧 25 7.6判断两点是否在平面异侧 25 7.7判断两空间直线是否平行 25 7.8判断两平面是否平行 26 7.9判断直线是否与平面平行 26 7.10判断两直线是否垂直 26 7.11判断两平面是否垂直 26 7.12判断两条空间线段是否相交 27 7.13判断线段是否与空间三角形相交 27 7.14计算两条直线的交点 28 7.15计算直线与平面的交点 28 7.16计算两平面的交线 29 7.17点到直线的距离 29 7.18 计算点到平面的距离 29 7.19计算直线直线的距离 30 7.20空间直线夹角的cos值 30 7.21两平面夹角的cos值 30 7.22直线与平面夹角sin值 31 1.最远曼哈顿距离 31 2. 最近点对 32 3. 最近点对 34 4. 最小包围圆 36 5. 求两个圆的交点 39 6. 求三角形外接圆圆心 40 7. 求凸包 42 8.凸包卡壳旋转求出所有对踵点、最远点对 44 9. 凸包+旋转卡壳求平面面积最大三角 47 10. Pick定理 50 11. 求多边形面积和重心 51 12. 判断一个简单多边形是否有核 52 13. 模拟退火 54 14. 六边形坐标系 56 15. 用一个给定半径的圆覆盖最多的点 60 16. 不等大的圆的圆弧表示 62 17. 矩形面积并 62 18. 矩形的周长并 66 19. 最近圆对 70 20. 求两个圆的面积交 74
★计算任意三角形、弓形、扇形的面积、球的表面积和圆的周长。★计算球、锥体、台体的体积。★计算万有引力、静电力。★计算单摆、锥摆、弹簧振子的振动周期。★关于匀变速直线运动的计算。★计算行星的质量、密度,卫星的绕行线速度、角速度。★已知两分力及其夹角求合力。★关于两物体碰撞的计算。★常用常数(比如圆周率、万有引力常量等)。★解二阶、三阶和四阶行列式,解二元、三元一次方程组。★计算某一点绕某一点旋转一定角度或弧度后的点的坐标。★求线段的定比分点的坐标。★二次抛物线的顶点式与一般式的互化及求二次抛物线与X轴的交点。★特大非负整数的加、减和乘法运算,所得的都是精确值,速度极快!★求排列数和组合数。★将一个数分解质因数。★将一个数的平方根化为最简二次根式并求其近似值。★求两个数的最小公倍数与最大公约数。★分数的加、减、乘、除运算。★大数的阶乘、乘方运算,所得的都是精确值,速度极快!★复数的加、减、乘、除、乘方、开方、三角式和代数式互化运算。★复利公式及其应用。★三角函数表(可以角度和弧度两种方式输入)。★反三角函数表(结果可以以角度和弧度两种方式显示)。★统计计算,可对输入的数据求算术平均数、几何平均数、平方平均数、方差、标准差、累加、累乘、最大数、最小数。★对数表。★圆锥曲线的一系列计算。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值