成cc 发表于 2020-9-23 13:05:15

如何求矩形在不同角度时4个角度坐标?

已知矩形长26宽11,R角半径为2,中心点O的 坐标为(0,0),怎样求矩形旋转任意角度后角A、B、C、D的坐标位置。

zeroieme 发表于 2020-9-23 13:58:25

https://zh.wikipedia.org/wiki/%E6%97%8B%E8%BD%AC

成cc 发表于 2020-9-23 22:02:53

zeroieme 发表于 2020-9-23 13:58
https://zh.wikipedia.org/wiki/%E6%97%8B%E8%BD%AC

兄弟链接打不开啊

sheng_jianguo 发表于 2020-9-25 17:05:42

这是一个很简单的问题:
假设旋转角度为α(右手法则),旋转前点的坐标为(x,y),旋转后的坐标为(x',y'),则
x'=x*cos(α)-y*sin(α)
y'=x*sin(α)+y*cos(α)
比如,B点旋转前坐标为(13+√2,5.5+√2),则旋转后的坐标(x',y')为
x'=(13+√2)*cos(α)-(5.5+√2)*sin(α)
y'=(13+√2)*sin(α)+(5.5+√2)*cos(α)

wayne 发表于 2020-9-25 20:01:38

\[\left(
\begin{array}{c}
A \\
B \\
C \\
D \\
\end{array}
\right)^T = \left(
\begin{array}{cc}
\cos (\theta ) & -\sin (\theta ) \\
\sin (\theta ) & \cos (\theta ) \\
\end{array}
\right)\cdot\left(
\begin{array}{cc}
-R \sin \left(\frac{\pi }{4}\right)-\frac{w}{2} & \frac{h}{2}+R \sin \left(\frac{\pi }{4}\right) \\
R \sin \left(\frac{\pi }{4}\right)+\frac{w}{2} & \frac{h}{2}+R \sin \left(\frac{\pi }{4}\right) \\
-R \sin \left(\frac{\pi }{4}\right)-\frac{w}{2} & -\frac{h}{2}-R \sin \left(\frac{\pi }{4}\right) \\
R \sin \left(\frac{\pi }{4}\right)+\frac{w}{2} & -\frac{h}{2}-R \sin \left(\frac{\pi }{4}\right) \\
\end{array}
\right)^T=\left(
\begin{array}{cc}
\cos (\theta ) \left(-\frac{R}{\sqrt{2}}-\frac{w}{2}\right)-\left(\frac{h}{2}+\frac{R}{\sqrt{2}}\right) \sin (\theta ) & \left(\frac{h}{2}+\frac{R}{\sqrt{2}}\right) \cos (\theta )+\sin (\theta ) \left(-\frac{R}{\sqrt{2}}-\frac{w}{2}\right) \\
\cos (\theta ) \left(\frac{R}{\sqrt{2}}+\frac{w}{2}\right)-\left(\frac{h}{2}+\frac{R}{\sqrt{2}}\right) \sin (\theta ) & \left(\frac{h}{2}+\frac{R}{\sqrt{2}}\right) \cos (\theta )+\sin (\theta ) \left(\frac{R}{\sqrt{2}}+\frac{w}{2}\right) \\
\cos (\theta ) \left(-\frac{R}{\sqrt{2}}-\frac{w}{2}\right)-\left(-\frac{h}{2}-\frac{R}{\sqrt{2}}\right) \sin (\theta ) & \left(-\frac{h}{2}-\frac{R}{\sqrt{2}}\right) \cos (\theta )+\sin (\theta ) \left(-\frac{R}{\sqrt{2}}-\frac{w}{2}\right) \\
\cos (\theta ) \left(\frac{R}{\sqrt{2}}+\frac{w}{2}\right)-\left(-\frac{h}{2}-\frac{R}{\sqrt{2}}\right) \sin (\theta ) & \left(-\frac{h}{2}-\frac{R}{\sqrt{2}}\right) \cos (\theta )+\sin (\theta ) \left(\frac{R}{\sqrt{2}}+\frac{w}{2}\right) \\
\end{array}
\right)^T\]
代入$w=26,h=11,R=2$得到\(\left(
\begin{array}{c}
A \\
B \\
C \\
D \\
\end{array}
\right)^T =\left(
\begin{array}{cc}
\left(-\sqrt{2}-13\right) \cos (\theta )-\left(\sqrt{2}+\frac{11}{2}\right) \sin (\theta ) & \left(-\sqrt{2}-13\right) \sin (\theta )+\left(\sqrt{2}+\frac{11}{2}\right) \cos (\theta ) \\
\left(\sqrt{2}+13\right) \cos (\theta )-\left(\sqrt{2}+\frac{11}{2}\right) \sin (\theta ) & \left(\sqrt{2}+13\right) \sin (\theta )+\left(\sqrt{2}+\frac{11}{2}\right) \cos (\theta ) \\
\left(-\sqrt{2}-13\right) \cos (\theta )-\left(-\sqrt{2}-\frac{11}{2}\right) \sin (\theta ) & \left(-\sqrt{2}-13\right) \sin (\theta )+\left(-\sqrt{2}-\frac{11}{2}\right) \cos (\theta ) \\
\left(\sqrt{2}+13\right) \cos (\theta )-\left(-\sqrt{2}-\frac{11}{2}\right) \sin (\theta ) & \left(\sqrt{2}+13\right) \sin (\theta )+\left(-\sqrt{2}-\frac{11}{2}\right) \cos (\theta ) \\
\end{array}
\right)^T\)

Transpose].Transpose[{{-R Sin-w/2,R Sin+h/2},{R Sin+w/2,R Sin+h/2},{-R Sin-w/2,-R Sin-h/2},{R Sin+w/2,-R Sin-h/2}}]]/.{w->26,h->11,R->2}

成cc 发表于 2020-10-9 11:20:01

wayne 发表于 2020-9-25 20:01
\[\left(
\begin{array}{c}
A \\


好的谢谢两位,我先消化一下
页: [1]
查看完整版本: 如何求矩形在不同角度时4个角度坐标?