易码技术论坛

 找回密码
 加入易码
搜索
查看: 574|回复: 15

坛子里面隐藏多年的数学帝们,都出来解题了

[复制链接]
发表于 2012-7-31 11:26:38 | 显示全部楼层 |阅读模式
题目:
平面内。有两个点A,B,A,B两点坐标已知,B点要绕a点旋转。现在要怎么样才能计算出 点B的旋转角度。

我的解法,使用三角函数计算。这种解法只能算出180度以下的解。对于180度以上的角,那就要分情况去讨论。
有没有好的数学方法,可以计算出大于180以上的角?不用去分情况讨论。
 楼主| 发表于 2012-7-31 15:44:17 | 显示全部楼层
我先占沙发了。不知道 我表述清楚没,大家能看懂吧
发表于 2012-7-31 17:48:19 | 显示全部楼层
数学不好的路过……
发表于 2012-7-31 19:49:44 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
发表于 2012-7-31 20:03:57 | 显示全部楼层
三角函数的定义已经告诉你了,必须分情况讨论.
 楼主| 发表于 2012-8-3 14:21:55 | 显示全部楼层
分情况讨论非常麻烦,而且三角函数的特殊角比如90,0,45在计算时总会出现问题.
有没有对四元数有了解的。貌似可以通过四元数运算,一次性算出全角度。
发表于 2012-8-3 22:20:48 | 显示全部楼层
A,B,B'三点坐标已知, AB,AB',BB'长度已知, 弄个反三角函数就是角度了呀...
发表于 2012-8-4 00:21:44 | 显示全部楼层
2D的就把旋转轴定成(0,0,1),然后设旋转角是2a,可以旋转用四元数表示出来,假设是q

然后已知的A点是(x,y,0),看成一个向量,用四元数表示为:A = x*i+y*j
转动后的B点是(x',y',0),四元数表示为:B = x'*i+y'*j

因此可以列出方程:B = q * A * q的共轭
然后按照四元数的乘法,代入各个部分,z和w大部分都是0,应该就消没有了,得到一个关于cos(a)和sin(a)的方程。简写做ca和sa。

我刚刚手算了一下,好像是:
ca * (ca * x - sa * y) - sa * (ca * y + sa * x ) = x'
sa * (ca * x - sa * y) + ca * (ca * y + sa * x) = y'

因为xyx'y'都是已知的,所以只有2个未知数ca和sa,但可惜不是二元一次方程组。

接下来就各种三角函数变来变去吧……能求出a是多少么?我三角函数太烂,就不算了……

四元数的表示还有四元数乘法的定义是指这里找的:
http://caterpillar.onlyfun.net/G ... aternionsRotate.htm
发表于 2012-8-4 11:53:03 | 显示全部楼层
用半角公式和倍角公式,倒是可以得到关于cos(2a)和sin(2a)的二元一次方程组。
2a就是真正的旋转角度,解出来就知道转了多少度鸟。




但是也需要分情况讨论:在x等于0的情况下,在y等于0的情况下,以及x和y都不等于0的情况下。

顺道说,xy是不能同时都为0的,这很显然对吧=v=
 楼主| 发表于 2012-8-5 12:39:53 | 显示全部楼层
老F辛苦了,多谢指点,四元数我现在还没搞太懂,赶紧去补补,再询问下,用四元数运算确实可以不用分情况讨论吗?
发表于 2012-8-5 19:21:02 | 显示全部楼层

回复 10# 的帖子

解出cos和sin之后角度就确定了,范围是-180~180。旋转方式是右手系,拇指从外穿向纸面表示z轴。
应该不用分情况讨论,除了解方程的时候。

不确定是不是对的,但很好奇为啥算这个?大部分情况应该是已知转轴和角度,求旋转后的点吧= =b
我其实没看明白你的题目……我是假设A绕原点旋转2a度后是B点来计算的。
旋转.png
发表于 2012-8-8 20:43:38 | 显示全部楼层
高考数学29分的飘过............
发表于 2012-8-8 21:43:11 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
发表于 2012-8-14 14:25:27 | 显示全部楼层
原帖由 红色激情 于 2012-8-8 21:43 发表
151分的飘过。

忘了多少分的飘过
发表于 2012-8-30 15:40:24 | 显示全部楼层
发挥失常133路过

唔,极坐标系应该可以解决
发表于 2012-9-2 20:23:34 | 显示全部楼层
好多年了。。。
您需要登录后才可以回帖 登录 | 加入易码

本版积分规则

Archiver|手机版|小黑屋|EMAX Studio

GMT+8, 2024-4-19 19:49 , Processed in 0.012693 second(s), 21 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表