javascript - 如何在hdpi屏幕上平滑渲染P5js?

标签 javascript processing render p5.js hdpi

hdpi屏幕的电脑越来越常见,我也拥有一台。
我正在构建一个网页,其中包含填充 div 的 P5.js Canvas 。 到目前为止我绝对没有问题,但由于我有一个 hdpi 屏幕,要渲染的像素数量巨大,而且很难平滑渲染。

我想做的:渲染低分辨率 Canvas 并拉伸(stretch)它以填充所有空间。但我不知道如何实现这一目标,甚至不知道是否可能。

function setup() {
    var canvasDiv = document.getElementById('myCanvas');
    var divWidth = canvasDiv.getBoundingClientRect().width;
    var divHeight = canvasDiv.getBoundingClientRect().height;
    var sketchCanvas = createCanvas(divWidth,divHeight);
    sketchCanvas.parent("myCanvas");

    background(0)

   
}
function windowResized() {
  	var canvasDiv = document.getElementById('myCanvas');
    var divWidth = canvasDiv.getBoundingClientRect().width;
    var divHeight = canvasDiv.getBoundingClientRect().height;
    resizeCanvas(divWidth, divHeight);

     background(0)
}



function draw(){
	
  
 
}

最佳答案

第一步:使用 createGraphics() 函数创建离屏缓冲区。更多信息可参见the reference 。给它任何你想要的低分辨率尺寸。

第二步:将场景绘制到屏幕外缓冲区。使用它的宽度和高度来按比例绘制内容。

第三步:使用 image() 函数将离屏缓冲区绘制到屏幕上,该函数采用要绘制的尺寸参数。使用 Canvas 的大小作为参数。同样,更多信息可以在 the reference 中找到。 .

您仍然会绘制相同数量的像素,但这就是您绘制到小缓冲区并调整其大小以匹配 Canvas 大小的方式。

如果您仍然遇到问题,请发布 MCVE在一个新的问题帖子中,我们将从那里开始。祝你好运。

关于javascript - 如何在hdpi屏幕上平滑渲染P5js?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48407211/

相关文章:

java - 从字符串输入创建类

java - 抽象渲染方法如何工作? ( java )

c# - C#中的卡片打印

javascript - 在数组中加载大量条目会导致网页卡住

Javascript: trim 数组中字符串的长度

javascript - 在 Electron 中加载时区库时出现问题

java - 开始处理并且字符串不比较

java - 线程 "Animation Thread"processing.core.PApplet$RendererChangeException 中出现异常

javascript - 防止在 React 中显示原始 HTML

javascript - 我的服务没有更新 - Angularjs