2013年6月15日 星期六

「筆記」QC進階筆記3-1

範例一:

本週課程以復習上週的內容為主,第一個練習為透過滑鼠來切換兩種不同的資料形態。

var line0=[
{X:0.5,Y:0,Z:0},
{X:0.1,Y:-0.4,Z:0},
{X:0.3,Y:0.2,Z:0},
{X:-0.2,Y:0.1,Z:0},
{X:-0.4,Y:0.3,Z:0},
];//陣列的宣告方式

var line1={
a1:{X:0.5,Y:0,Z:0},
a2:{X:0.1,Y:-0.4,Z:0},
a3:{X:0.3,Y:0.2,Z:0},
a4:{X:-0.2,Y:0.1,Z:0},
a5:{X:-0.4,Y:0.3,Z:0},
};//物件資料結構的宣告方式

function (__structure out) main (__number choice)
{
 var result = new Object();
 if(choice == 1){
  result.out = line0;
 }else{
  result.out = line1;
 }
 return result;
}
qc2_w3-1.qtz

範例二:

透過滑鼠的位移,動態改變陣列的大小,陣列越大時,視覺物件的邊數越多(越圓滑)。
function (__structure out) main (__number segments,__number size)
{
 var result = new Object();
 var lines=[];
 
 for(var i=0;i<segments;i++){
 
  var theta=(i/(segments-1))*Math.PI*2;
  //example1
  //lines[i]={X:Math.cos(theta)/size,Y:Math.sin(theta)/size,Z:0};
  //物件的宣告方式
  
  //example2
  //lines[i]=[Math.cos(theta)/size,Math.sin(theta)/size,0];
  //陣列的宣告方式
  
  //example3
  lines.push([Math.cos(theta)/size,Math.sin(theta)/size,0]);
 }
 //滑鼠的X軸方向,影響物件大小;y軸方向影響邊數。
 result.out = lines;
 return result;
}

 qc2-w3-2.qtz