mathematica 发表于 2019-1-5 15:36:59

.·.·. 发表于 2019-1-5 15:30
发现了你的问题所在
你并没有验证sin a的大小
只用cos a的话可能会转出一个大于180度小于270度的解


我觉得可能是mathematica的bug,
因为第二个方程可能被软件平方了,然后没有验算相反数的情况。
当然这只是我的猜想。

wayne 发表于 2019-1-5 20:31:22

这个就是一个旋转矩阵的事情。 计算出的答案很简洁,也很有启发性。
p = {x, y}; p1 = {X1, Y1}; p2 = {X2, Y2};
Solve] == 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\}\]

mathematica 发表于 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导致的

chyanog 发表于 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{ ...

你的方程也可以这样列,解出来的结果不会出现增根
p={x,y};p1={x1,y1};p2={x2,y2};
eqn=(p-p1).(p-p1)==(p-p2).(p-p2)&&Det[{p-p1,p-p2}]==DotTan[θ]
sol=Solve;
sol=FullSimplify}]&,TrigFactor}]
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\}\]

mathematica 发表于 2019-1-8 08:39:35

chyanog 发表于 2019-1-7 15:48
你的方程也可以这样列,解出来的结果不会出现增根




你的计算结果不正确,因为是除以正切值,而不是乘以正切值,
两个都是除以正切值
页: 1 [2]
查看完整版本: 这个旋转中心如何求?