找回密码
 欢迎注册
楼主: sdhuxuejun

[原创] 这个旋转中心如何求?

[复制链接]
发表于 2019-1-5 15:36:59 | 显示全部楼层
.·.·. 发表于 2019-1-5 15:30
发现了你的问题所在
你并没有验证sin a的大小
只用cos a的话可能会转出一个大于180度小于270度的解

我觉得可能是mathematica的bug,
因为第二个方程可能被软件平方了,然后没有验算相反数的情况。
当然这只是我的猜想。
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2019-1-5 20:31:22 | 显示全部楼层
这个就是一个旋转矩阵的事情。 计算出的答案很简洁,也很有启发性。
  1. p = {x, y}; p1 = {X1, Y1}; p2 = {X2, Y2};
  2. Solve[Thread[RotationTransform[\[Theta]][p1 - p] == p2 - p], p]//FullSimplify
复制代码


\[\left\{x\to \frac{1}{2} \left(\text{X1}+\text{X2}+\cot \left(\frac{\theta }{2}\right) (\text{Y1}-\text{Y2})\right),y\to \frac{1}{2} \left(\cot \left(\frac{\theta }{2}\right) (\text{X2}-\text{X1})+\text{Y1}+\text{Y2}\right)\right\}\]

点评

强  发表于 2019-1-7 21:01
或者 Solve[RotationTransform[θ, p][p1] == p2, {x,y}]  发表于 2019-1-7 16:15
Thread可以去掉的:)  发表于 2019-1-7 16:09
牛!这个函数也知道!  发表于 2019-1-6 09:38
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2019-1-6 09:44:07 | 显示全部楼层
wayne 发表于 2019-1-5 20:31
这个就是一个旋转矩阵的事情。 计算出的答案很简洁,也很有启发性。

其实这题用向量或者复数也很好解决
假设两点是A,B,中点是O,然后另外一点是C
那么很容易求解出来
OA=1/2BA
OCtan(c/2)=OA所以旋转OA向量(顺时针90与逆时针90,用复数或者旋转矩阵),
就可以得到OC向量,
然后再求得O点的坐标,最后得到C的坐标。
这个也就是对你算出来的结果与我算出来的结果的几何解释,
我上面两个算出来的结果,有两个结果是因为mathematica软件的bug导致的
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2019-1-7 15:48:41 | 显示全部楼层
本帖最后由 chyanog 于 2019-1-7 15:53 编辑
mathematica 发表于 2019-1-5 11:11
\[\left\{\left\{x\to \frac{1}{2} \left(\frac{\sqrt{-\left(\text{cosa}^2-1\right) (\text{y1}-\text{ ...


你的方程也可以这样列,解出来的结果不会出现增根
  1. p={x,y};p1={x1,y1};p2={x2,y2};
  2. eqn=(p-p1).(p-p1)==(p-p2).(p-p2)&&Det[{p-p1,p-p2}]==Dot[p-p1,p-p2]Tan[θ]
  3. sol=Solve[eqn,{x,y}];
  4. sol=FullSimplify[sol,TransformationFunctions->{Automatic,PowerExpand[#,{y1-y2,Sec[θ]}]&,TrigFactor}]
  5. eqn/.sol//FullSimplify
复制代码


\[\left\{\left\{x\to \frac{1}{2} \left(\text{x1}+\text{x2}+(-\text{y1}+\text{y2}) \tan \left(\frac{\theta }{2}\right)\right),y\to \frac{1}{2} \left(\text{y1}+\text{y2}+(\text{x1}-\text{x2}) \tan \left(\frac{\theta }{2}\right)\right)\right\},\left\{x\to \frac{1}{2} \left(\text{x1}+\text{x2}+(\text{y1}-\text{y2}) \cot \left(\frac{\theta }{2}\right)\right),y\to \frac{1}{2} \left(\text{y1}+\text{y2}+(-\text{x1}+\text{x2}) \cot \left(\frac{\theta }{2}\right)\right)\right\}\right\}\]
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2019-1-8 08:39:35 | 显示全部楼层
chyanog 发表于 2019-1-7 15:48
你的方程也可以这样列,解出来的结果不会出现增根

你的计算结果不正确,因为是除以正切值,而不是乘以正切值,
两个都是除以正切值
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
您需要登录后才可以回帖 登录 | 欢迎注册

本版积分规则

小黑屋|手机版|数学研发网 ( 苏ICP备07505100号 )

GMT+8, 2024-5-5 15:01 , Processed in 0.041762 second(s), 16 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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