发现了你的问题所在
你并没有验证sin a的大小
只用cos a的话可能会转出一个大于180度小于270度的解
我觉得可能是mathematica的bug,
因为第二个方程可能被软件平方了,然后没有验算相反数的情况。
当然这只是我的猜想。 这个就是一个旋转矩阵的事情。 计算出的答案很简洁,也很有启发性。
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\}\] 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: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\}\] chyanog 发表于 2019-1-7 15:48
你的方程也可以这样列,解出来的结果不会出现增根
你的计算结果不正确,因为是除以正切值,而不是乘以正切值,
两个都是除以正切值
页:
1
[2]