[微積] 給三個點算角度

看板Math作者 (雲の狐)時間12年前 (2013/05/21 21:54), 編輯推噓2(2016)
留言18則, 8人參與, 6年前最新討論串1/1
想問個問題 在一個座標軸上有三個點(2,1)(4,2)(6,3)連成一條直線 要計算這條直線的旋轉角度只需要知道 <x^2> , <y^2> , <x*y> 這三個質 剩下的可以用三角函數推算出來 <x^2> = x的平方 然後取平均 (上面三個點的例子 : <2^2+4^2+6^3> = (4+16+36)/3 = 56/3) 朋友告訴我的算法是 cos^2θ*<x^2> + sin^2θ*<y^2> + 2*sinθ*cosθ*<x*y> 會有極值 上式對θ微分後等於零 2*cosθ*(-sinθ)*<x^2> + 2*sinθ*cosθ*<y^2> + [ 2*cos^2θ*<x*y> - 2*sin^2θ*<x*y> ] = 0 整理後 tan 2θ = 2*<x*y> / ( <x^2> - <y^2> ) θ就會是這條直線跟X軸的夾角 ===== ===== ===== ===== ===== 自己嘗試把這三個點帶進去 tan2θ 換成 sinθ & cosθ看似沒有問題 不過如果帶(1,1)(1,2)(1,3)就不是了 當然,我不確定我有沒有記錯朋友跟我說的我有沒有記錯就是了 現在找不她,所以來這詢問看看 如何用這三個數值計算出點連成直線的角度 如果發文有什麼問題請盡速告知 感謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.115.31.78

05/21 22:23, , 1F
你直接用前2個點求斜率不就好了= =算那麼複雜幹嘛
05/21 22:23, 1F

05/21 22:43, , 2F
因為應用上需求,所以需要用到這種算法
05/21 22:43, 2F

05/21 23:59, , 3F
那三個點能連成一線?
05/21 23:59, 3F

05/22 00:06, , 4F
tan 的問題在於垂直線 (就是你的後一個例子)
05/22 00:06, 4F

05/22 00:06, , 5F
(基本上算 tan 某種程度上就是在算斜率了)
05/22 00:06, 5F

05/22 00:21, , 6F
問題是垂直線是90度 tan2倍角 180度 應該是0
05/22 00:21, 6F

05/22 03:58, , 7F
沒看錯的話...這作法最多只適用於"過原點"的直線。
05/22 03:58, 7F

05/22 03:58, , 8F
所以後面那個例子當然是不適用了。修正方法大概如下:
05/22 03:58, 8F

05/22 04:00, , 9F
<xy>換成<xy>-<x><y>,<x^2>換成<x^2>-<x>^2
05/22 04:00, 9F

05/22 04:00, , 10F
<y^2>換成<y^2>-<y>^2這樣應該就可以了吧?
05/22 04:00, 10F

05/22 09:02, , 11F
推樓上。 原po把 data (x,y) shift 到 (x-<x>,y-<y>)
05/22 09:02, 11F

05/22 09:03, , 12F
應該是可行。 端看你那條 cost function 限制為何
05/22 09:03, 12F

05/22 09:04, , 13F
To 1F: 原po大概是想拿一條直線 fit 三點
05/22 09:04, 13F

05/22 09:05, , 14F
只是都舉 perfect match 的例子
05/22 09:05, 14F

05/22 22:38, , 15F
感謝..
05/22 22:38, 15F

11/10 11:51, , 16F
應該是可行。 端看你那 https://daxiv.com
11/10 11:51, 16F

01/02 15:25, 7年前 , 17F
那三個點能連成一線? https://noxiv.com
01/02 15:25, 17F

07/07 11:04, 6年前 , 18F
因為應用上需求,所以需 https://moxox.com
07/07 11:04, 18F
文章代碼(AID): #1Hctnvm- (Math)