亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在 p5.js 中通過行和用戶輸入創建 Square

在 p5.js 中通過行和用戶輸入創建 Square

慕姐8265434 2022-01-07 13:14:26
我正在 p5.js 中通過鼠標學習用戶輸入,我想通過 4 次不同的點擊創建一個 4 行方格方法,每行點擊 1 次,最后一次點擊完成方格。下面的代碼是 2 行,但它們都同時運行,我無法理解 if 命令分別運行它們。function setup() {    createCanvas(400, 400);    background(220);}function draw() {  }function mousePressed(){    line(width/20,height/40,mouseX,mouseY);    line(pmouseX,pmouseY,mouseX,mouseY);}<script src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/0.9.0/p5.js"></script>
查看完整描述

1 回答

?
慕絲7291255

TA貢獻1859條經驗 獲得超6個贊

您必須將點存儲到列表中。如果列表包含 4 個元素并且再次單擊鼠標,則清除列表:


var pts = [];

function mousePressed()

{

    if (pts.length == 4) {

        pts = [];

    }

    pts.push([mouseX, mouseY])

}

連續做所有的繪圖draw()。清除背景。在循環中繪制點之間的留置權。如果點數為 4,則從最后一個點到第一個點畫一條線。

此外,如果列表中至少有 1 個點,您可以從最后一個點到當前鼠標位置繪制一條“橡皮”線:


function draw() {  

      background(220);


      // draw the lines between the points

      for (var i=0; i < pts.length-1; ++i) {

          line(pts[i][0], pts[i][1], pts[i+1][0], pts[i+1][1]);

      }


      var close = pts.length == 4;

      if (close) {

          // draw line from 1st point to at point

          line(pts[pts.length-1][0], pts[pts.length-1][1], pts[0][0], pts[0][1]); 

      }

      else if (pts.length > 0) {

          // draw a rubber line from last point to the mouse

          line(pts[pts.length-1][0], pts[pts.length-1][1], mouseX,mouseY); 

      }

}

看例子


function setup() {

  createCanvas(400, 400);

}


var pts = [];

function mousePressed()

{

    if (pts.length == 4) {

        pts = [];

    }

    pts.push([mouseX, mouseY])

}


function draw() {  

      background(220);


      // draw the lines between the points

      for (var i=0; i < pts.length-1; ++i) {

          line(pts[i][0], pts[i][1], pts[i+1][0], pts[i+1][1]);

      }


      var close = pts.length == 4;

      if (close) {

          // draw line from 1st point to at point

          line(pts[pts.length-1][0], pts[pts.length-1][1], pts[0][0], pts[0][1]); 

      }

      else if (pts.length > 0) {

          // draw a rubber line from last point to the mouse

          line(pts[pts.length-1][0], pts[pts.length-1][1], mouseX,mouseY); 

      }

}

<script src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/0.9.0/p5.js"></script>


查看完整回答
反對 回復 2022-01-07
  • 1 回答
  • 0 關注
  • 167 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號