台灣最大程式設計社群網站
線上人數
1981
 
會員總數:246213
討論主題:189782
歡迎您免費加入會員
討論區列表 >> CSS/HTML5/Bootstarp >> 請問大大們,這題用球作成一個圓形~~
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
請問大大們,這題用球作成一個圓形~~
價值 : 50 QP  點閱數:1451 回應數:6
樓主

遠仔
門外漢
0 82
1372 260
發送站內信


想請問
1.var deg:Number=(360/num)*i;//算出每顆球的角度<==我這樣理解沒有錯吧
2.如果我將var ballx:Number=Math.cos(rad) * r +locx;換成var ballx:Number=Math.sin(rad) * r +locx;
以及var bally:Number=Math.sin(rad) * r +locy;換成var bally:Number=Math.cos(rad) * r +locy;
也是可形成圓,但是1st球的位置(從三點鐘的位置變到六點鐘的位置)及形成實體的順序(由逆時針變成順時針)會改變,是為何呢@@?
3.那如果我想將1st球的位置改到九點鐘或12點鐘的位置,請問要怎麼做呢?
大大們,麻煩了@@


本篇文章發表於2012-07-28 23:26
1樓
回應

香帥
檢舉此回應
您要附上檔案(才含有球實體)才能幫您
因為以上沒有球半徑,及面積資料,若半徑超過某數,您以上的假設都無法成立喔
本篇文章回覆於2012-07-29 21:47
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
作者回應

遠仔
檢舉此回應
用球構成圓形
麻煩^^"~~
本篇文章回覆於2012-07-30 20:27
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
回應

香帥
檢舉此回應
變成12點位置
var ballX:Number=-r*Math.sin(rad)+locX;
var ballY:Number=-r*Math.cos(rad)+locY;
變成9點位置
var ballX:Number=-r*Math.cos(rad)+locX;
var ballY:Number=-r*Math.sin(rad)+locY;
1.var deg:Number=(360/num)*i;//算出每顆球的角度<==我這樣理解沒有錯吧-->對的

2.如果我將var ballx:Number=Math.cos(rad) * r +locx;換成var ballx:Number=Math.sin(rad) * r +locx;
以及var bally:Number=Math.sin(rad) * r +locy;換成var bally:Number=Math.cos(rad) * r +locy;
也是可形成圓,但是1st球的位置(從三點鐘的位置變到六點鐘的位置)及形成實體的順序(由逆時針變成順時針)會改變,是為何呢@@?
因cos是計算x,sin是y,您互換3,6就對換
本篇文章回覆於2012-07-31 00:04
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
4樓
作者回應

遠仔
檢舉此回應
帥大再請教一下~~
"cos是計算x,sin是y,您互換3,6就對換"
那sin為何 正值是在6點鐘,而負值是在12點鐘呢?
是因為FLASH裡的Y,往下為正(值越大),往上為負(值越小)的原因嗎?
本篇文章回覆於2012-08-01 21:30
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
5樓
最有價值解答

香帥
檢舉此回應
我所謂cos是算x軸,sin是y
主要是參考原作者以下解說圖

因為一開始i是0,所以從三點鐘方向
那有很多方法,以上只是方便說
現在再提共一種方法,比較容易懂的,就是旋轉法(我自取的名子)
var num:Number=12; //請將14改為12剛好時鐘比較好切割
6點鐘方向程式碼
var deg:Number=(360/num)*(i+3); //因為i=0從3點鐘方向.要變成6點鐘方向,i+3剛好(6-3=3)
12點鐘方向程式碼
var deg:Number=(360/num)*(i+9); //因為i=0從3點鐘方向.要變成12點鐘方向,i+9剛好(12-3=9)
本篇文章回覆於2012-08-01 22:07
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
6樓
作者回應

遠仔
檢舉此回應
感恩~~^^
本篇文章回覆於2012-08-02 00:17
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

回覆
如要回應,請先登入.