![]() ![]() ![]() ![]() |
|||||
|
|||||
樓主 遠仔 ![]()
![]() |
想請問~~ this.graphics.moveTo(x+(Math.cos(start_rad)*outerRadius), y-(Math.sin(start_rad)*outerRadius)); 1.請問這裡的x,y是指哪個物件的x,y呢? 以及WHY前面用x+,後面用y-呢? 2.trace(x,y)的結果都是0,0 我將全部的x+跟y-拿掉也可執行,這裡x,y是多餘的麼? 3.為何用moveTo移動繪圖點,也要加上cos,sin?為何不能只給座標呢? dx = x+Math.cos(start_rad+(step*n)-halfStep)*innerRadius; 6.WHY這裡要-halfStep,下面不用呢?繪製多邊形有什麼公式麼@@? 大大們,麻煩了~~@@
本篇文章發表於2012-08-03 00:34
|
1樓 |
我為解釋跟您改一下程式碼如下
本篇文章回覆於2012-08-04 20:53
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
2樓 |
以上程式碼增加四行第
29,30,44,45 1.請問這裡的x,y是指哪個物件的x,y呢? 以及WHY前面用x+,後面用y-呢? 這是指畫布座標0,0,因為function內x:Number=0, y:Number=0 2.trace(x,y)的結果都是0,0 我將全部的x+跟y-拿掉也可執行,這裡x,y是多餘的麼? 因為他本來就預設0,0,因為function內x:Number=0, y:Number=0 x,y不是多餘的您也可以改從哪一點開始計算 您若將我29,30,44,45這四行拿掉,用您原來的程式碼,在23行插入 x= -500; y= -500; 那麼圖就會往左上移 3.為何用moveTo移動繪圖點,也要加上cos,sin?為何不能只給座標呢? cos,sin是要計算在外圓,及內圓的座標阿 第44,45 this.graphics.drawCircle (x,y,outerRadius); this.graphics.drawCircle (x,y,innerRadius); 畫上內外圓圈您就會看到那座標要在圓圈上一定要用cos,sin去計算 若您要亂畫,就直接給座標就可以了 4.WHY PI要*2呢? 一個圓圈的最大弧度就是圓周長/直徑剛好是 2 pi halfStep = step/2;//5.這裡用意是? 那是內圓的五個點加上外圓圈5個點剛好是10個點,那麼原來的弧度給5個點去分,當然要再 step/2 才能再分給5個點 //6.WHY這裡要-halfStep,下面不用呢?繪製多邊形有什麼公式麼@@? 因為他內圓的點所以要-halfStep, 下面是畫外圓的點所以不必 繪製多邊形有什麼公式麼@@? ,沒公式,是一群點連接起來成線,再連起來成為多邊
本篇文章回覆於2012-08-04 21:16
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
3樓
作者回應
遠仔 ![]() |
帥大,再請問~~
所以內圓的點一定要-halfStep,這是固定的麼? 不能省略也不能用+的是麼,否則會變形~~ 應該沒有特殊情況會變成要寫+halfStep吧~~
本篇文章回覆於2012-08-07 15:41
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
4樓
作者回應
遠仔 ![]() |
多邊形2
帥大,再請問~~ WHY在這題的SampleHittestASK.as中... //1.請問為何可用rectA.addEventListener(Event.ENTER_FRAME, isHit); //但卻不能用circle.addEventListener(Event.ENTER_FRAME, isHit);呢? //2.請問為何可用rectA.addEventListener(Event.ENTER_FRAME, isHit); //但卻不能用pointStar.addEventListener(Event.ENTER_FRAME, isHit);呢?
本篇文章回覆於2012-08-07 20:39
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
5樓
最有價值解答
香帥 ![]() |
to 3#
內圓剛好是外圓角度一半 例如外圓是6,內圓是3 halfStep = 6 /2 = 3 內圓 = 6 - halfStep = 3 因此只能 - ,不能加,若加的,變成 6+halfStep=9,就不對了 to 4# 要用這circle.addEventListener(Event.ENTER_FRAME, isHit);也可以 如以下程式碼,不過由於circle在動,其他兩個不動永遠不會進到circle的ENTER_FRAME事件,只能測碰到座標 也可用 pointStar.addEventListener(Event.ENTER_FRAME, isHit); 如以下程式碼,可以碰到STAR,及座標,但是RECTA不會動因此不會進到STAR去,所以RECTA不會有碰撞事件,我將程式碼將座標改為200,220,因此碰到STAR是真的碰到. 原來程式碼一樣,可以碰到RECTA,及座標,但STAR不會動因此不會進到RECTA去,所以STAR不會有碰撞事件,但作者故意將座標設為 200,200會誤會以為碰到STAR,因此我將程式碼將座標改為200,220,這樣就會更清楚看到了
本篇文章回覆於2012-08-07 23:33
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
6樓
作者回應
遠仔 ![]() |
感恩~~^__^
本篇文章回覆於2012-08-08 16:52
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
回覆 |
如要回應,請先登入. |