您現在的位置是:電腦技術吧?>? 故障問題 ??>??正圓弧g代碼,外圓圓弧用什么代碼??>??正文詳情

正圓弧g代碼,外圓圓弧用什么代碼

米從蓉2019-11-14 14:51:06 人圍觀
簡介圓弧編程實例隨機引弧效果有幾個特性可以調整,但描述得不多。粘貼代碼并感興趣地查看它。剛加了個便條。。。//*****畫弧//******************內孔圓弧編程實例

一個隨機畫圓弧的效果,有幾個屬性可調整,也不多描述了,

  貼一下代碼,有興趣的看一下吧,剛加了下注釋...

  //******* draw_arc ************************

  //******************* 作者:boenlee *****

  //舞臺元件:

  //可視區域元件--mask

  //移動按鈕--up_btn, down_btn, left_btn, right_btn

  //文本框--angle_txt, time_txt, r_txt, thickness_txt

  //復選按鈕--trace_check, leaf_check

  //重畫按鈕--redraw_btn

  //庫鏈接元件:

  //葉子--leaf

  //***************************************************

  //畫小于等于45度的圓弧,任意角度開始

  //mc:目標mc名稱

  //ox:原點x位置

  //oy:原點y位置

  //r:半徑

  //origin_angle:起始角度

  //angle:弧的角度,正數順時針畫弧,負數逆時針畫弧

  //thickness:線的粗細

  //rbg:線的顏色

  //alpha:線的透明度

  //返回:圓弧終點坐標,終點為角度大的點,與angle符號無關

  function draw_small_arc (mc:MovieClip, ox:Number, oy:Number, r:Number, origin_angle:Number, angle:Number,

  thickness:Number, rbg:Number, alpha:Number):Object {

  var origin_angle:Number = origin_angle % 360;

  var angle:Number = angle % 360;

  origin_angle = angle 0 ? origin_angle angle : origin_angle;

  angle = Math.abs (angle);

  angle = angle 45 ? 45 : angle;

  var ctrl_r:Number = maintain_digit (1 / cosD (angle / 2) * r, 4);

  var ctrl_sin:Number = maintain_digit (sinD (origin_angle angle / 2), 4);

  var ctrl_cos:Number = maintain_digit (cosD (origin_angle angle / 2), 4);

  var org_sin:Number = maintain_digit (sinD (origin_angle), 4);

  var org_cos:Number = maintain_digit (cosD (origin_angle), 4);

  var achr_sin:Number = maintain_digit (sinD (origin_angle angle), 4);

  var achr_cos:Number = maintain_digit (cosD (origin_angle angle), 4);

  with (mc) {

  lineStyle (thickness, rbg, alpha, false, normal, none);

  moveTo (org_cos * r ox, org_sin * r oy);

  curveTo (ctrl_cos * ctrl_r ox, ctrl_sin * ctrl_r oy, achr_cos * r ox, achr_sin * r oy);

  }

  return {x:achr_cos * r ox, y:achr_sin * r oy};

  }

  //畫小于等于360度的圓弧,任意角度開始

  //參數及返回值與draw_small_arc函數相同

  function draw_arc (mc:MovieClip, ox:Number, oy:Number, r:Number, origin_angle:Number, angle:Number, thickness:Number,

  rbg:Number, alpha:Number):Object {

  var origin_angle:Number = angle 0 ? origin_angle angle : origin_angle;

  var angle:Number = Math.abs (angle);

  var times:Number = int (angle / 45);

  var last_angle:Number = angle % 45;

  if (times = 8) {

  times = 8;

  last_angle = 0;

  }

  for (var i:Number = 0; i times; i ) {

  draw_small_arc (mc, ox, oy, r, 45 * i origin_angle, 45, thickness, rbg, alpha);

  }

  return draw_small_arc (mc, ox, oy, r, 45 * times origin_angle, last_angle, thickness, rbg, alpha);

  }

  //小數保留

  //val:要處理數值

  //maintain:保留位數

  //返回:處理后的數

  function maintain_digit (val:Number, maintain:Number):Number {

  var multiple:Number = Math.pow (10, Math.abs (maintain));

  return Math.round (val * multiple) / multiple;

  }

  //以角度為參數計算sin值

  function sinD (angle:Number):Number {

  return Math.sin (Math.PI / 180 * angle);

  }

  //以角度為參數計算cos值

  function cosD (angle:Number):Number {

  return Math.cos (Math.PI / 180 * angle);

  }

  //隨機顏色

  function rnd_color ():Number {

  return random (255) 16 | random (255) 8 | random (255);

  }

  //弧線顏色數組,由于隨機顏色比較丑,所以選擇幾個比較好的顏色

  var color_arr:Array = [0xFF1111, 0xEDB83D, 0xEBEB1D, 0x99E91F, 0x20E91F, 0x23E4E3, 0x1DC2EB, 0x1B45ED,

  0x6F1BED, 0xC21BED, 0xEB1DEB, 0xF017AF, 0xF01784, 0xFFFFFF];

  //葉子顏色數組,原因同上

  var leaf_color_arr:Array = [0x25EB25, 0xF3F347, 0x4AF09D, 0xF2AD48];

  //起始角度

  var origin_angle:Number;

  //弧的角度

  var angle:Number;

  //弧度是否隨機

  var angle_rnd:Boolean;

  //方向

  var dir:Number;

  //上一個弧的方向

  var old_dir:Number;

  //弧的個數

  var time:Number;

  //弧所在圓的坐標

  var posx:Number;

  var posy:Number;

  //弧終點位置

  var pos_obj:Object;

  //半徑

  var r:Number;

  //弧線粗細

  var thickness:Number;

  //是否跟蹤

  var is_trace:Boolean = false;

  //是否有樹葉生長效果

  var leaf_grow:Boolean = false;

  //用于畫弧線的mc

  var line_mc:MovieClip;

  //初始化屬性

  function init_prop () {

  line_mc.removeMovieClip ();

  line_mc = this.createEmptyMovieClip (line_mc, 1);

  line_mc.setMask (mask);

  line_mc._x = mask._x;

  line_mc._y = mask._y;

  origin_angle = random (4) * 90;

  angle = get_txt_value (angle_txt, 0, 0, 10, 360);

  if (angle == 0) {

  angle_rnd = true;

  } else {

  angle_rnd = false;

  }

  dir = random (2) ? 1 : -1;

  posx = random (100) - 50;

  posy = random (100) - 50;

  time = get_txt_value (time_txt, 50, 10, 10, 200);

  r = get_txt_value (r_txt, 20, 5, 5, 50);

  thickness = get_txt_value (thickness_txt, 5, 1, 1, 10);

  }

  //主函數

  function main () {

  if (--time 0) {

  dir = random (2) ? 1 : -1;

  origin_angle = angle;

  //如果當前弧的方向與前一個的不同,計算當前弧所在圓的原點位置

  if (dir old_dir == 0) {

  posx = cosD (origin_angle) * 2 * r;

  posy = sinD (origin_angle) * 2 * r;

  origin_angle = 180;

  }

  if (angle_rnd) {

  angle = dir * (random (50) 50);

  } else {

  angle = dir * Math.abs (angle);

  }

  pos_obj = draw_arc (line_mc, posx, posy, r, origin_angle, angle, thickness, color_arr[random (color_arr.length)], 100);

  //加載樹葉

  if (leaf_grow) {

  line_mc.attachMovie (leaf, leaf time, time, {_x:pos_obj.x, _y:pos_obj.y, _rotation:random (360), _xscale:random (50)

  r * 2 thickness * 5, _yscale:random (50) r * 2 thickness * 5, _alpha:random (100) thickness * 5});

  var leaf_color:Color = new Color (line_mc[leaf time]);

  leaf_color.setRGB (leaf_color_arr[random (leaf_color_arr.length)]);

  }

  //跟蹤

  if (is_trace) {

  line_mc._x = mask._x - pos_obj.x;

  line_mc._y = mask._y - pos_obj.y;

  }

  old_dir = dir;

  } else {

  delete line_mc.onEnterFrame;

  }

  }

  //獲取文本框內容,為數值

  //txt_name:文本框名稱

  //nan_val:文本內容非數字時所取值

  //zero_val:文本內容為0時所取值

  //min_val:文本內容最小值

  //max_val:文本內容最大值

  function get_txt_value (txt_name:TextField, nan_val:Number, zero_val:Number, min_val:Number, max_val:Number) {

  if (isNaN (Number (txt_name.text))) {

  txt_name.text = String (nan_val);

  } else if (Number (txt_name.text) == 0) {

  txt_name.text = String (zero_val);

  } else if (Number (txt_name.text) min_val) {

  txt_name.text = String (min_val);

  } else if (Number (txt_name.text) max_val) {

  txt_name.text = String (max_val);

  }

  return Number (txt_name.text);

  }

  //重畫

  redraw_btn.onRelease = function () {

  delete line_mc.onEnterFrame;

  init_prop ();

  line_mc.onEnterFrame = main;

  };

  //選擇是否跟蹤

  trace_check.onRelease = function () {

  is_trace = !is_trace;

  this.gotoAndStop (Number (is_trace) 1);

  };

  //選擇是否生長樹葉

  leaf_check.onRelease = function () {

  leaf_grow = !leaf_grow;

  this.gotoAndStop (Number (leaf_grow) 1);

  };

  var keep_moving:MovieClip = this.createEmptyMovieClip (keep_moving, 2);

  var speed:Number = 10;

  //移動line_mc

  function moving (speedx:Number, speedy:Number) {

  keep_moving.onEnterFrame = function () {

  line_mc._x = speedx;

  line_mc._y = speedy;

  };

  }

  //停止移動

  function stop_move () {

  delete keep_moving.onEnterFrame;

  }

  //按鈕控制

  up_btn.onPress = function () {

  moving (0, speed);

  };

  down_btn.onPress = function () {

  moving (0, -speed);

  };

  left_btn.onPress = function () {

  moving (speed, 0);

  };

  right_btn.onPress = function () {

  moving (-speed, 0);

  };

  up_btn.onRelease = up_btn.onReleaseOutside = down_btn.onRelease = down_btn.onReleaseOutside = left_btn.onRelease =

  left_btn.onReleaseOutside = right_btn.onRelease = right_btn.onReleaseOutside = function () {

  stop_move ();

  };

  //鍵盤控制

  var key_lis:Object = new Object ();

  key_lis.onKeyDown = function () {

  switch (Key.getCode ()) {

  case 37 :

  moving (speed, 0);

  break;

  case 38 :

  moving (0, speed);

  break;

  case 39 :

  moving (-speed, 0);

  break;

  case 40 :

  moving (0, -speed);

  break;

  }

  };

  key_lis.onKeyUp = function () {

  stop_move ();

  };

  Key.addListener (key_lis);

  init_prop ();

  line_mc.onEnterFrame = main;

版權聲明:本文由 米從蓉 整理編輯。

原標題:如何用g代碼加工圓弧,圓弧插補指令

轉載注明出處:http://www.dn9ww09s.icu/fault/12192.html

文章評論

    共有條評論來說兩句吧...

    用戶名:

    驗證碼:

作者推薦

  • office 2013 密鑰,office2007密鑰

    office 2013 密鑰,office2007密鑰 相關圖片office2010永久密鑰25很多用戶都知道power point嵌入excel圖表更容易,而且他們不會再被格式所困擾。但是,在下載和更新office 2013后,他們發現已安裝的offic2016office激活密鑰...

  • 元素定位,八種元素定位

    元素定位,八種元素定位 相關圖片測量的定位元素默認情況下,您不需要擔心塊元素(如div)的自適應寬度,但是一旦它使用絕對定位,它就不會填充您需要的寬度,所以我們現在應該怎么做?答案是使用left和right定位...

  • 電腦藍屏,電腦老是藍屏

    電腦藍屏,電腦老是藍屏 相關圖片電腦藍屏0x0000007b計算機藍屏也稱為藍屏崩潰,是指微軟Windows操作系統在無法從系統錯誤中恢復時所顯示的屏幕圖像。電腦藍屏是一件很煩人的事情,尤其是在看視頻或玩游戲的時候,為...

  • 電腦突然關機,電腦關機

    電腦突然關機,電腦關機 相關圖片筆記本電腦突然關機小編了解到,有些用戶遇到電腦突然關機的情況。如果有這樣的問題我該怎么辦?我相信很多朋友不知道。鑒于最近想知道這種方法的朋友越來越多,小編準備在這...

  • 順序,五筆畫順序

    順序,五筆畫順序 相關圖片中的筆畫順序當使用多個樣式表時,樣式表需要爭奪特定選擇器的控制權。在這些情況下,樣式表的規則總是可以獲得控制權。下列屬性決定了相反樣式表的結果!重要規則可以用指定...

  • 電腦關機后自動重啟的原因,電腦關機總是自動重啟

    電腦關機后自動重啟的原因,電腦關機總是自動重啟 相關圖片win7關機立馬自動重啟計算機關閉后自動重新啟動的原因是什么?很多普通的計算機用戶并沒有深入研究這個問題,因為有時它不是一個無限重復的過程,過一段時間就正常了,但這并不...

  • 素材紋理,高清紋理素材

    素材紋理,高清紋理素材 相關圖片紋理背景圖片素材透明紋理步驟1打開網站。顯示界面如下。在左側,您可以調整顏色、亮度并復制CSS代碼。如圖所示:綠色:步驟2如果你不喜歡這些紋理,在右上角有一個搜索框,并且...

  • 電腦恢復出廠,臺式電腦恢復出廠設置

    電腦恢復出廠,臺式電腦恢復出廠設置 相關圖片電腦如何恢復出廠設置win7我相信你對“計算機重置”這個詞很熟悉。但是,當我們遇到無法解決的計算機問題時,我們如何操作計算機來重置出廠設置?有些電腦不知道怎么操作小白。...

  • 文字制作軟件,制作特效

    文字制作軟件,制作特效 相關圖片ps文字特效立體這個例子的實現是熒光文本效果。在制作過程中,我們主要使用漸變填充等工具,通過一些簡單的工具來創造優美的文字效果。難點在于圖形和顏色編輯技巧以及填充工具...

  • 電腦的本地連接不見了怎么辦,電腦本地連接?

    電腦的本地連接不見了怎么辦,電腦本地連接? 相關圖片本地連接不見了有時我們發現本地連接丟失,我們仍然可以訪問Internet。這次顯示硬件沒有問題。那么為什么本地連接不顯示在桌面上呢?解決辦法是什么?這種情況對小白來說很困難。...

熱評文章

  • 電腦卡了關不了機怎么辦,電腦突然關不了機了怎么辦

    電腦卡了關不了機怎么辦,電腦突然關不了機了怎么辦 相關圖片電腦沒反應也管不了機電腦不能關機的原因有很多。今天,小編將和大家分享電腦不能關機的幾個原因。它們大多是由這三個原因造成的。讓我們看看發生了什么。我希望我們能幫助你...

  • 電腦打不開了,電腦為什么打不開

    電腦打不開了,電腦為什么打不開 相關圖片電腦軟件打不開無響應現在很多工作離不開電腦。有時電腦會出故障。無法打開“我的電腦”圖標,或無法打開電腦桌面上的圖標。我們現在該怎么辦?當小白遇到電腦時,他很無助。...

  • html5調用一個網頁,網頁調用api

    html5調用一個網頁,網頁調用api 相關圖片網頁調用高拍儀插件一些網民經常問,如何使嵌入網頁的flash標簽符合web標準。目前,還沒有完美的解決方案。在本文中,我們將flash嵌入標記寫入JS文件,并通過變量傳遞參數來避js調用...

  • xp磁盤分區怎么分,xp如何重新分區

    xp磁盤分區怎么分,xp如何重新分區 相關圖片硬盤分區xp很多用戶都來問小編我的磁盤分區方法是什么。實際上,制作計算機分區非常簡單。如果你想知道的話,小編一定會分享你的磁盤分區方法!接下來,我將給你一個分區的圖形...

  • 人機界面是啥,人機界面

    人機界面是啥,人機界面 相關圖片人機界面由什么組成審美完整性的設計原則審美完整性并不能判斷視覺設計的應用,也不能用來描述應用的風格特征。審美完整性是指一個應用程序的視覺表達、交互行為和功能的結合...

  • 他看得見你的聲音,他看見你的聲音共幾本

    他看得見你的聲音,他看見你的聲音共幾本 相關圖片相機聲音怎么關不了在計算機的日常使用中,經常會遇到計算機的小故障而沒有聲音。你是怎么解決的?一般來說,我們先處理軟件故障,然后再處理硬件故障。因為造成這種情況的原...

  • 水滴 動畫,有關水滴的動畫

    水滴 動畫,有關水滴的動畫 相關圖片水滴動畫圖片這是有原因的。如果不是我的朋友告訴你怎么做閃光滴,我不會在這里告訴你的。每次我做閃光,閃光的朋友經常提到它。今天,我有時間介紹一下如何制作。其實很簡單...

  • 手機usb連接電腦沒反應,電腦usb接口沒反應

    手機usb連接電腦沒反應,電腦usb接口沒反應 相關圖片微型usb連接器有網友在網上詢問,手機一直處于USB連接狀態,手機正在充電。現在手機USB連接電腦根本沒有反應。原因是什么?這種手機USB連接沒有響應解決方案。互聯網上有很多解無...

  • 中國風,什么是中國風

    中國風,什么是中國風 相關圖片中國風主題讓我們先來看看效果:效果圖的總結:從整體上把握中式作品的表現還是很難的。畫畫并不難,但如何把握我們的傳統風格,再加上后現代思潮所呈現的新取向,繪畫技法的...

  • 電腦睡眠和休眠,電腦睡眠和休眠什么區別

    電腦睡眠和休眠,電腦睡眠和休眠什么區別 相關圖片電腦休眠在筆記本的“開始”菜單中,我們可以看到除了關機、重新啟動和注銷、睡眠模式和睡眠模式之外,還有另外兩種模式。大多數人可能認為沒有區別,只是為了看到多個選擇。...

關注微信

变脸官网查询