幾何之美(二)

       在Processing中,最經常使用也是最多見的當屬點,線,圓等的座標了,那麼先從座標講起。目前使用最普遍的度量體系就屬笛卡爾座標系統了。笛卡爾數學由著名的法國哲學家、物理學家、生理學家、數學家勒奈·笛卡爾(1596-1650)發明,並以他的名字命名。笛卡爾不只創立了解析幾何,將當時徹底分離的代數學和幾何學聯繫到了一塊兒,還在回答「怎樣判斷某件事物是真的?」這個哲學問題上邁出了一大步。工具

       你們看下圖:oop

void setup() {
  size(640, 360);
  noStroke();
  noLoop();
}

void draw() {
  drawCircle(width/2, 280, 6);
}

void drawCircle(int x, int radius, int level) {                    
  float tt = 126 * level/4.0;
  fill(tt);
  ellipse(x, height/2, radius*2, radius*2);      
  if(level > 1) {
    level = level - 1;
    drawCircle(x - radius/2, radius/2, level);
    drawCircle(x + radius/2, radius/2, level);
  }
}

       經過了簡短的代碼,繪製了不少對稱呈灰度顯示的大圓和小圓。經過在draw()方法中調用drawCircle()這個畫圓的工具,咱們輕鬆地生產出他們。不知道你們有沒有發現,我能夠將兩個同級對稱的圓用座標軸進行分割,那麼兩個圓就是相對於y軸鏡面對稱,每兩個同級圓其實就是共享一個座標系統。那麼其實我這裏就是繪製了31個嵌套的座標系統(除最外面的大圓)。spa

再以下圖:
code

       一上來你們可能看的不是太明白。這是什麼呀?可能有些人會發問。其實這是三張頻譜圖。用來分別映射咱們鼠標的動做:最上面那張是表示鼠標在x軸上的運動狀況,中間那幅表示鼠標在y軸上的運動狀況,而最下面那張表示鼠標點擊這個動做的發生和延遲狀況。ip

       下面是他的代碼實現:數學

int[] xvals;
int[] yvals;
int[] bvals;

void setup() 
{
  size(640, 360);
  noSmooth();
  xvals = new int[width];
  yvals = new int[width];
  bvals = new int[width];
}

int arrayindex = 0;

void draw()
{
  background(102);
  
  for(int i = 1; i < width; i++) { 
    xvals[i-1] = xvals[i]; 
    yvals[i-1] = yvals[i];
    bvals[i-1] = bvals[i];
  } 
  // Add the new values to the end of the array 
  xvals[width-1] = mouseX; 
  yvals[width-1] = mouseY;
  if(mousePressed) {
    bvals[width-1] = 0;
  } else {
    bvals[width-1] = 255;
  }
  
  fill(255);
  noStroke();
  rect(0, height/3, width, height/3+1);

  for(int i=1; i<width; i++) {
    stroke(255);
    point(i, xvals[i]/3);
    stroke(0);
    point(i, height/3+yvals[i]/3);
    stroke(255);
    line(i, 2*height/3+bvals[i]/3, i, (2*height/3+bvals[i-1]/3));
  }
}

       不知道你們有沒有發現,前面兩張圖很像咱們中學時代學的正弦與餘弦曲線。上面的白色平行線和中間那條黑色平行線就是他們分別對應的x軸,神奇吧。若是你鼠標移動的越快,這些曲線的幅寬則越小。一樣道理,若是你停留在鼠標上的時間越長,那麼當你點擊以後移開鼠標以前產生的直方圖的跨度則越大。
class

       這些都是幾何學中座標軸的妙用,經過座標軸的變換咱們還能夠得出不少不少有趣的2D和3D圖形。你們還不趕快開動腦筋和雙手來創造他們吧。sed

       這一節就先講到這裏,歡迎關注本連載博文《幾何之美》的下一篇。謝謝你們!float

相關文章
相關標籤/搜索