p5js冲突的2D和3D渲染
p5js conflicting 2D and 3D rendering
我是p5js和一般代码的初学者。我正在为我的一个类开发一个(希望如此)交互式网站,该网站使用由DOM控制的两个单独的草图。我认为3D渲染模式和2D渲染模式正在相互对抗。这两幅草图完全分开画。我在Chrome开发人员中收到了以下错误消息:"p2d中不支持p5.js:16124 Uncaught。请使用webgl模式"。这是我的代码:
HTML
<html>
<head>
<meta charset="UTF-8">
<script language="javascript" type="text/javascript" src="libraries/p5.js"></script>
<script language="javascript" src="libraries/p5.dom.js"></script>
<script language="javascript" type="text/javascript" src="sketch.js"></script>
<script language="javascript" type="text/javascript" src="sketch2.js"></script>
<style> body {padding: 0; margin: 0;} </style>
</head>
<body>
<div id="text" style="background: none; position: absolute; color: white; font-family: avenir,sans-serif; width: 250px; margin-left: 140px; margin-top: 50px; line-height: 15pt; font-size: 9pt; z-index:1;">
<p>
text
</p>
</div>
<div id="myContainer" style="background:none; position:absolute; z-index:-1; width:100%;height:100%;"></div>
<div id="myContainer2" style="background:none; position:absolute; z-index:-2; width:100%;height:100%;"></div>
</body>
</html>
草图1
function setup(){
var myCanvas = createCanvas(windowWidth, windowHeight,WEBGL);
myCanvas.parent('myContainer2');
}
function draw(){
background(0,0,0);
rotateY(frameCount * 0.01);
for(var j = 0; j < 50; j++){
push();
for(var i = 0; i < 80; i++){
translate(sin(frameCount * 0.02 + j) * 150, sin(frameCount * 0.1 + j) * 110, i * 0.9);
rotateZ(frameCount * 0.04);
push();
sphere(10, 15, 5);
pop();
}
pop();
}
}
草图2
var input, button;
function setup() {
// create canvas
var myCanvas = createCanvas(windowWidth, windowHeight);
myCanvas.parent('myContainer');
background(255,255,255,0);
input = createInput();
input.position(140, 675);
button = createButton('Share');
button.position(280, 676);
button.mousePressed(greet);
textAlign(CENTER)
textSize(15);
}
function greet() {
var name = input.value();
for (var i=0; i<1; i++) {
push();
fill(255,255,0);
translate(random(width), random(height));
text(name, 0, 0);
pop();
}
}
此操作不适用于2d(GitHub)。如果要反转x坐标并创建对象镜像,只需设置translate并对所有x坐标使用-x即可。
line(this.mirroring*0.5*grid_step, 0, this.mirroring*0.5*grid_step, 0.5*grid_step);
line(this.mirroring*2.5*grid_step, 0, this.mirroring*2.5*grid_step, 0.5*grid_step);
line(this.mirroring*0.5*grid_step, 0.25*grid_step, this.mirroring*2.5*grid_step, 0.25*grid_step);
其中this.mirroring可以是-1或1。当this.mirroring=-1时;反向切换
相关文章:
- React重新渲染但未显示正确的组件
- React组件等待所需道具进行渲染
- backbone.js无法渲染视图
- Webpack开发服务器和React服务器端渲染
- 在数据提取完成之前进行页面渲染
- 如何临时暂停浏览器渲染,然后恢复整个页面
- 在Highcharts中,我们可以通过任何方式在渲染图表之前获得plotWidth和plotHeight
- Backbone LayoutManager渲染问题
- 我的shareService在angular 2中发送值工作正常,但当我渲染我的另一个组件时,会获得默认值
- 为什么画布形状只在3个画布中的最后一个画布上渲染
- 设置画布渲染器的x和y位置
- 当带有渲染器的DOM元素不在屏幕顶部时,移动了场景的坐标
- 在X轴刻度上渲染HTML
- 带有JQuery和CSS的3D旋转木马-渲染不正确
- 如何使用 HTML5/JS 渲染具有兴趣点的 3D 地图
- p5js冲突的2D和3D渲染
- 使用WebGL进行多尺度巨大的3D体渲染
- 如何在Three JS中截取CSS 3D渲染器的截图
- Highcharts 3D饼颜色渲染
- Three.js如何在用户看不到3d空间时停止渲染