最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

使用p5.js臨摹動(dòng)態(tài)圖形

 更新時(shí)間:2019年10月23日 10:53:56   作者:四號(hào)少年  
這篇文章主要為大家詳細(xì)介紹了如何使用p5.js臨摹動(dòng)態(tài)圖形,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

一、臨摹

最近正在學(xué)習(xí)用代碼繪圖,于是按照下面的動(dòng)態(tài)圖形自己臨摹了一幅圖形

臨摹結(jié)果
觀察發(fā)現(xiàn),整個(gè)圖案都是由基礎(chǔ)的正六邊形組成

首先創(chuàng)建一個(gè)畫(huà)布

function setup() {
 createCanvas(400, 400);
}

畫(huà)六邊形的函數(shù)為

function polygon(x, y, radius, npoints) {//繪制正多邊形函數(shù)
 let angle = TWO_PI / npoints;
 beginShape();
 for (let a = 0; a < TWO_PI; a += angle) {  
  let sx = x + sin(a) * radius;
  let sy = y + cos(a) * radius;
  vertex(sx, sy);
 }
 endShape(CLOSE);
}

x,y分別表示六邊形的位置,radius表示圖形的邊長(zhǎng),npoints表示圖形的邊數(shù)

發(fā)現(xiàn)六邊形一直在繞著自己的中心旋轉(zhuǎn),并未發(fā)生其他變換,因此只需要將六邊形批量創(chuàng)建,并使它不斷旋轉(zhuǎn)即可。

通過(guò)循環(huán)以及平移函數(shù)畫(huà)出六邊形

通過(guò)translate函數(shù)不斷更改六邊形的中心位置,

通過(guò)時(shí)間函數(shù),達(dá)到不斷旋轉(zhuǎn)的效果

完整代碼如下

function setup() {
 createCanvas(400, 400);
}
function draw() {
 background(10,10,10);
 var t=millis()/2000;
fill(123,0,0);
   for(var j=0;j<=4;j++){
  for(var h=0;h<=4;h++){
     push();
     translate(width *(0.1+j*0.2),height*(0.17+h*0.34));
    rotate(t);
     polygon(0,0,40 ,6);    
     pop();
    }  
 }
 for(var i=0;i<=5;i++){
   for(var k=0;k<=5;k++){
   
     push();
     translate(width *i*0.2,height*k*0.34);
    rotate(t); 
      polygon(0,0,40 ,6);     
     pop();
   }
  }
  
 }

function polygon(x, y, radius, npoints) {//繪制正多邊形函數(shù)
 let angle = TWO_PI / npoints;
 beginShape();
 for (let a = 0; a < TWO_PI; a += angle) {  
  let sx = x + sin(a) * radius;
  let sy = y + cos(a) * radius;
  vertex(sx, sy);
 }
 endShape(CLOSE);
}

效果圖

圖形改編

只做了微小的改變,顏色可以隨機(jī)切換,且有一個(gè)由小變大的過(guò)程

代碼如下

function setup() {
 createCanvas(400, 400);
}
function draw() {
 background(0,10,200);
var t=5*millis()/1000;

//fill(211,0,0);
   for(var j=0;j<=4;j++){
  for(var h=0;h<=4;h++){
     push();
     translate(width *(0.1+j*0.2),height*(0.17+h*0.34));
     rotate(frameCount / 22.0);
     let c2=random(100,255);
   
   fill(0,c2,0);  
    if (t<50)
    {polygon(0,0,t ,6);}
     if(t>50)
    {
     fill(255,0,0);
     polygon(0,0,50 ,6);
    }

     pop();
    }
  
 }
 for(var i=0;i<=5;i++){
   for(var k=0;k<=5;k++){
   
     push();
     translate(width *(0+i*0.2),height*(0+k*0.34));
     rotate(frameCount / 22.0);
     let c2=random(100,255);
  
   fill(0,c2,0);  
    if (t<50)
    {polygon(0,0,t ,6);}
    if(t>50)
    {
     fill(0,255,0);
      polygon(0,0,50 ,6);
     }
    
     pop();
   }
  }
  
 }

function polygon(x, y, radius, npoints) {//繪制正多邊形函數(shù)
 let angle = TWO_PI / npoints;
 beginShape();
 for (let a = 0; a < TWO_PI; a += angle) {  
  let sx = x + sin(a) * radius;
  let sy = y + cos(a) * radius;
  vertex(sx, sy);
 }
 endShape(CLOSE);
}

總結(jié)

本次實(shí)驗(yàn)讓我對(duì)代碼編程有了初步的了解,逐漸學(xué)回了分析問(wèn)題和解決問(wèn)題,雖然目前解決的都還是很簡(jiǎn)單的問(wèn)題。做的圖形也不夠有創(chuàng)意,這門(mén)課程很有意思,希望后面自己可以抽出更多的時(shí)間來(lái)進(jìn)行學(xué)習(xí)。

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Javascript中eval函數(shù)的詳細(xì)用法與說(shuō)明

    Javascript中eval函數(shù)的詳細(xì)用法與說(shuō)明

    Javascript中eval函數(shù)的詳細(xì)用法與說(shuō)明...
    2007-03-03
  • Webpack打包慢問(wèn)題的完美解決方法

    Webpack打包慢問(wèn)題的完美解決方法

    這篇文章主要給大家介紹了關(guān)于Webpack打包慢問(wèn)題的完美解決方法,文中通過(guò)示例代碼介紹的非常詳細(xì),相信對(duì)大家的學(xué)習(xí)或者工作能帶來(lái)一定的幫助,需要的朋友們下面來(lái)一起看看吧。
    2017-03-03
  • JavaScript 嚴(yán)格模式(use strict)用法實(shí)例分析

    JavaScript 嚴(yán)格模式(use strict)用法實(shí)例分析

    這篇文章主要介紹了JavaScript 嚴(yán)格模式(use strict)用法,結(jié)合實(shí)例形式分析了JavaScript 嚴(yán)格模式的基本功能、用法及操作注意事項(xiàng),需要的朋友可以參考下
    2020-03-03
  • jQuery實(shí)現(xiàn)頁(yè)面頂部下拉廣告

    jQuery實(shí)現(xiàn)頁(yè)面頂部下拉廣告

    本文主要分享了jQuery實(shí)現(xiàn)頁(yè)面頂部下拉廣告的具體代碼。具有一定的參考價(jià)值,下面跟著小編一起來(lái)看下吧
    2016-12-12
  • 在JavaScript中添加css樣式(js追加類(lèi))代碼示例

    在JavaScript中添加css樣式(js追加類(lèi))代碼示例

    這篇文章主要給大家介紹了關(guān)于在JavaScript中如何添加css樣式,也就是js追加類(lèi)的相關(guān)資料,JavaScript是一種廣泛應(yīng)用于互聯(lián)網(wǎng)開(kāi)發(fā)的編程語(yǔ)言,它能夠幫助網(wǎng)頁(yè)實(shí)現(xiàn)動(dòng)態(tài)效果和交互性,需要的朋友可以參考下
    2024-01-01
  • javascript漢字拼音互轉(zhuǎn)的簡(jiǎn)單實(shí)例

    javascript漢字拼音互轉(zhuǎn)的簡(jiǎn)單實(shí)例

    下面小編就為大家?guī)?lái)一篇javascript漢字拼音互轉(zhuǎn)的簡(jiǎn)單實(shí)例。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2016-10-10
  • bootstrap 路徑導(dǎo)航 分頁(yè) 進(jìn)度條的實(shí)例代碼

    bootstrap 路徑導(dǎo)航 分頁(yè) 進(jìn)度條的實(shí)例代碼

    本文通過(guò)實(shí)例代碼給大家介紹了bootstrap 路徑導(dǎo)航 分頁(yè) 進(jìn)度條的相關(guān)知識(shí),非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2018-08-08
  • Java通過(guò)WebSocket實(shí)現(xiàn)異步導(dǎo)出解決思路

    Java通過(guò)WebSocket實(shí)現(xiàn)異步導(dǎo)出解決思路

    這篇文章主要介紹了通過(guò)WebSocket實(shí)現(xiàn)異步導(dǎo)出,本篇文章記錄大批量數(shù)據(jù)導(dǎo)出時(shí)間過(guò)長(zhǎng),導(dǎo)致接口請(qǐng)求超時(shí)問(wèn)題,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2024-01-01
  • js實(shí)現(xiàn)漢字排序的方法

    js實(shí)現(xiàn)漢字排序的方法

    這篇文章主要介紹了js實(shí)現(xiàn)漢字排序的方法,涉及javascript針對(duì)中文編碼的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-07-07
  • javascript觸發(fā)模擬鼠標(biāo)點(diǎn)擊事件

    javascript觸發(fā)模擬鼠標(biāo)點(diǎn)擊事件

    這篇文章主要介紹了javascript觸發(fā)模擬鼠標(biāo)點(diǎn)擊事件,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-06-06

最新評(píng)論

蛟河市| 剑阁县| 岢岚县| 杂多县| 都匀市| 莎车县| 洪江市| 织金县| 奎屯市| 黑水县| 讷河市| 漳平市| 郸城县| 尼勒克县| 化德县| 东乌珠穆沁旗| 南澳县| 德江县| 华宁县| 大足县| 宜都市| 皮山县| 牙克石市| 肃北| 孙吴县| 天津市| 墨脱县| 茶陵县| 东乌珠穆沁旗| 那曲县| 咸丰县| 五大连池市| 呈贡县| 内黄县| 饶河县| 吉安市| 柳林县| 新邵县| 大城县| 怀化市| 青河县|