javascript - 使用 canvas Javascript 绘制正方形

标签 javascript canvas 2d drawing2d

为分配制作一个随机艺术生成器。我们应该让方 block 随机弹出,但我不知道要画一个方 block 。这是我目前所拥有的

function drawSquare(canvas, context, color){
    var x= Math.floor(Math.random()*canvas.width);
    var y= Math.floor(Math.random()*canvas.height);
    context.beginPath();
    context.fillStyle = color;
    context.fillRect (x,y, canvas.width, canvas.height)
 }

最佳答案

我不喜欢为别人做家庭作业,但再次克服技术问题并能够发挥创造力和艺术性是有趣的部分。所以,这里有一个随机方 block 生成器,您可以尝试并从中学习。有一些评论可以解释更多。

const canvas = document.getElementById("canv");
const ctx = canvas.getContext("2d");
const width = window.innerWidth;
const height = window.innerHeight;
const maxWH = Math.max(width, height);

//use resize event listener to change these on window resize...
canvas.width = width;
canvas.height = height;

//to generate random intergers from 0 to 255, for colour channels
function randomInteger(max = 256){
  return Math.floor(Math.random()*max);
}
//draw n squares at random places and sizes
function makeRandomSquares(n){
  for(let i = 0; i < n; i++){
    const size = Math.random()*(maxWH*0.15);
    //minus half the size from x,y
    //so they can overlap left and top of screen, not just bottom and right.
    const x = Math.random()*width-size/2;
    const y = Math.random()*height-size/2;
    //random rgba colour
    ctx.fillStyle = `rgba(${randomInteger()},${randomInteger()},${randomInteger()},${Math.random()*0.4})`;
    ctx.fillRect(x,y,size,size);
  }
}
//initialize with 2 squares
makeRandomSquares(2);
//make 2 more squares each click
document.addEventListener("click", function(){
  makeRandomSquares(2);
}, false);
html, body {
  margin: 0;
  padding: 0;
}
canvas {
  width: 100%;
  height: 100%;
}
<canvas id="canv"></canvas>

关于javascript - 使用 canvas Javascript 绘制正方形,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49807779/

相关文章:

c# - 二维游戏物理向量问题

javascript - 如何为 p5.js 编写一行代码,作为我的播放器的相机跟随器? (var Mover;) 这是一款 2D 游戏

javascript - 可折叠,具有内容相关的展开大小

javascript - 改变 MediaRecorder 和 canvas.captureStream 的质量?

c - 如何在 C 中的二维双数组中读取 .pgm 图像文件

javascript - Canvas drawImage 在本地运行时抛出 INDEX_SIZE_ERR,而不是从网络运行

html - HTML5 能否用于安全地传输视频?

javascript - Node JS进程内存不足

javascript - 如何在同一个类中调用2个JavaScript方法?

JavaScript - 当用户确认离开页面时运行代码