a788. 10. uPhone Two-Point Zoom
標籤 :
通過比率 : 67人/75人 ( 89% ) [非即時]
評分方式:
Tolerant

最近更新 : 2013-10-23 20:39

內容
梨子電腦最近開發一個新產品叫uPhone,uPhone有一個功能是可以用兩根手指自由縮放和旋轉圖片,梨子電腦認為這個功能將帶給他們巨大的收益。然而觸控面板的硬體設備已經研發完畢,剩下的就只是一個小小的魔法(程式),於是他們請你寫一個可以將兩點觸控的資料轉換成控制縮放、旋轉參數的程式。
輸入說明

每行輸入包含四個數對,分別代表第一根手指的開始與結束位置和第二根手指的開始與結束位置,幸運的是,裝置裡已經含有錯誤過濾器了,所以不用擔心有錯誤的輸入。輸入8個零結束。 

輸出說明
輸出包含四個數字:分別為x座標的相對移動、y座標的相對移動( 相對移動的算法為:結束兩點的中心座標 - 開始兩點的中心座標 )、放大率( 算法為:結束兩點的距離 / 開始兩點的距離 ( 距離公式:d2 = ( x2 – x1 )2 + ( y2 – y1 )2 ) )和逆時針旋轉角度( 單位:弧度 )( 算法為:tan a = ( m2 - m1 ) / ( 1 + m1m2 ) )。本題不會有垂直線而且角度介於+/-90°( 1.571弧度 ),前兩個數字無條件捨去到整數位,後兩個則四捨五入到小數點以下第三位。
範例輸入 #1
58 24 42 36 148 176 164 98
97 81 97 146 81 48 65 16
0 0 0 0 0 0 0 0
範例輸出 #1
0 -33 0.775 -0.566
-8 16 3.651 0.210
測資資訊:
記憶體限制: 64 MB
提示 :
Java、C++、C語言中欲將斜率轉為角度( arctangent )請用atan()函式,Pascal則用ArcTan函式。
標籤:
出處:
HP CodeWars2008 [管理者: snail (蝸牛) ]

本題狀況 本題討論 排行

編號 身分 題目 主題 人氣 發表日期
沒有發現任何「解題報告」