求圓和橢圓上任意角度的點的座標

2021-09-07 05:47:18 字數 2905 閱讀 9426

如上圖,給定圓心(cx,cy),半徑為r, 求θ

\theta

θ對應的點的座標? 此處θ

\theta

θ是相對於水平軸的角度。

顯然我們可以使用極座標轉換來求:

px= cx+rcos(\theta) \\ py= cy+rsin(\theta) \end\right.

px= cx+rcos(\theta) \\ py= cy-rsin(\theta) \end\right.

\frac+\frac&=&1 \\ \frac& =& \tan(\theta) \end\right.

x2=b2+

a2tan2(θ

)a2b

2​這時我們考慮θ

\theta

θ的範圍,可以得到:

(一). 0≤θ

/20\leq\theta0≤θ/2

或者 3∗p

i22∗pi

\frac

23∗pi​

2∗pi

x=\frac} \\ y=\frac} \end\right.

⎩⎨⎧​x=

b2+a

2tan2(

θ)​a

b​y=

b2+a

2tan2(

θ)​a

btan(θ

)​​(二). pi/

2<

θ<3∗

pi2pi/2

pi/2

<

θ<23

∗pi​

x=-\frac} \\ y=-\frac} \end\right.

⎩⎨⎧​x=

−b2+

a2tan2(θ

)​ab

​y=−

b2+a

2tan2(

θ)​a

btan(θ

)​​(三). θ=p

i/2\theta = pi/2

θ=pi/2

x=0 \\ y=b \end\right.

θ=23∗p

i​x=0 \\ y=-b \end\right.

x\\ y \end=r(\begin x\\ y \end-\begin x_c\\y_c \end)

(xy​)=

r((x

y​)−

(xc​

yc​​

))其中r=(

cos(

−α)−

sin(

−α)s

in(−

α)co

s(−α

))=(

cos(

α)si

n(α)

−sin

(α)c

os(α

))r=\begin cos(-\alpha) &-sin(-\alpha) \\ sin(-\alpha) & cos(-\alpha) \end=\begin cos(\alpha) &sin(\alpha) \\ -sin(\alpha) & cos(\alpha) \end

r=(cos

(−α)

sin(

−α)​

−sin

(−α)

cos(

−α)​

)=(c

os(α

)−si

n(α)

​sin

(α)c

os(α

)​)因此

( xy

)=r−

1(xy

)+(x

cyc)

\begin x\\ y \end =r^\begin x\\ y \end+\begin x_c\\y_c \end

(xy​)=

r−1(

xy​)

+(xc

​yc​

​)其中r−1

=rt=

(cos

(α)−

sin(

α)si

n(α)

cos(

α))(

★)r^=r^=\begin cos(\alpha) &-sin(\alpha) \\ sin(\alpha) & cos(\alpha) \end~~~~~~~~~~~~~~~~~~~~~~~~~~~(\bigstar)

r−1=rt

=(co

s(α)

sin(

α)​−

sin(

α)co

s(α)

​)(★

)這樣將前面(xy

)\begin x\\ y \end

(xy​

) 的四個結果應用過來,即得到傾斜的橢圓上的對應角度的點的座標。

擴充套件:

如果以上的角度是相對於水平軸的角度,則對應的橢圓上的點的座標如何求呢?

答: 其實很簡單,只需要:

θ ′=

\theta-\alpha+2*pi, & \theta

θ′= \alpha\rightarrow -\alpha\\ y\rightarrow -y \end\right.

問題:一,為什麼不用atan?

答:atan的範圍是[-π/2,π/2],atan2的範圍是(-π,π]。前者只能表示兩個象限,後者可以表示4個。

二,為什麼不atan2(a*tan(radian),b)?

答:這樣寫,和用atan的效果一樣。

(主要參考這個)

(這裡有乙個從極座標變換角度新的推導)

已知圓上任意兩點求圓心和半徑 半徑和直徑

一 概念描述 現代數學 關於半徑,數學辭海 是這樣定義的 圓的半徑見圓。關於直徑,數學辭海 中是這樣定義的 直徑見 弦 我們先來看看弦的定義。弦,圓周上的一種特殊線段,指連線圓周上任意兩點的線段。過圓心的弦稱為直徑,直徑是半徑的二倍,它是最長的弦。從以上定義中我們可知,半徑和直徑都是線段。半徑的兩個...

matlab 求點到任意直線的投影點座標

寫在前面 因為影象座標系和我們平時用的直角座標系還是有不同的。因此在求點到直線投影點座標的時候,不敢隨便把直線用點斜式表示。為此採用向量的方法求投影點。function proj point projpoint point,line p x1 line p 1 y1 line p 2 x2 line...

筆記 已知圓上兩點座標和半徑,求圓心

參考了一下這個博主的部落格 已知兩點座標 x1,y1 x2,y2 和半徑r,求圓心座標 x0,y0 程式設計驗證演算法 具體例子 已知 2,4 4,2 半徑r 2,求圓心 include stdafx.h include include using namespace std void circle...