我可以使用着色器读取两个纹理,但是对于输出,似乎只有gl_FragColor.有没有办法从一个着色器渲染到两个不同的纹理?我正在使用Processing和GLGraphics库btw.
有了大量的微控制器,甚至不同级别的arduinos提供比上一个更多的功能,是否有一种数学方式或某种方式来了解您需要多少处理能力,只需通过分析,运行您的程序设计为了选择合适的微型?
没有反复试验.即不只是尝试它,如果太慢,购买下一个芯片.
好的,我正在使用Processing它允许我访问任何图像的像素int[].我现在想要做的是将图像转换为灰度.每个像素的结构如下所示:
...........PIXEL............
[red | green | blue | alpha]
<-8--><--8---><--8--><--8-->
Run Code Online (Sandbox Code Playgroud)
现在,我需要将哪些转换应用于单个RGB值以使图像成为灰度?
我的意思是,我添加/减少多少使图像灰度化?
我在这里找到了一些方法:http://www.johndcook.com/blog/2009/08/24/algorithms-convert-color-grayscale/
我正在使用Processing语言绘制一个随时间增长的矩形.以下代码没有给出任何输出.
void setup()
{
size(900,900);
}
void draw()
{
int edge=100;
for(int i=0;i<300;i++)
{
delay(100);
edge++;
rect(100,100,edge,edge);
}
}
Run Code Online (Sandbox Code Playgroud)
我怀疑错误地使用了delay()函数.
我正试图通过Jer Thorp的"Just Landed"启发时间推移地理推特可视化.我正在使用最新版本的处理.
我正在为我的地图使用SVG图像,因为我希望能够以任意角度放大地图,专注于某些地方,然后在全球范围内显示推特连接.我遇到了几个问题,第一个问题是当我旋转地图时,这些国家的路径边界会闪烁.这是我的问题的截图:

这是导致问题的代码:
import processing.opengl.*;
import java.awt.event.*;
PShape map;
PShape test1;
PShape test2;
//camera position/movement intialization
PVector position = new PVector(450, 450);
PVector movement = new PVector();
PVector rotation = new PVector();
PVector velocity = new PVector();
float rotationSpeed = 0.035;
float panningsSpeed = 0.035;
float movementSpeed = 0.05;
float scaleSpeed = 0.25;
float fScale = 2;
void setup(){
map = loadShape("blank_merc.svg"); //swap out for whatever file
size(900, 900, OPENGL);
smooth();
fill(150, 200, 250);
addMouseWheelListener(new MouseWheelListener(){ …Run Code Online (Sandbox Code Playgroud) 我想在Android上获得加速度计并将它们放在地球坐标系上,就像在这个主题上从设备的坐标系加速到绝对坐标系或这里将加速度计的数据从设备坐标转换为真实世界坐标,但这些解决方案没有为我工作.我正在处理Processing.该项目只是为了追踪太空中的手机加速度,无论它是怎样的(站立,侧面......).我也是Android的新手.我很感激你的帮助!谢谢.
编辑:我不需要手机准确的位置,只需要加速.
今天早上我想写一个无用的程序,我最终得到了这个极其简单的天文模拟器.MCVE版本的代码附在帖子的末尾.
然后我添加了一些行星,坐下来准备好欣赏一些绕着彼此绕行的行星.然而事实证明是一个问题.
问题是,两个原本相互靠得太近的静态行星往往会相互冲击到超高速,它们都会永远消失在屏幕之外.这显然违背了动力原则.行星不这样做.我开始怀疑我的牛顿法实施有什么问题.但有些时候,只要它们保持"安全"距离,行星就可以正常工作.
如果你想研究这个问题,我已经为你仔细考虑了两个设置.第一个,增加了两个行星,并且非常稳定.(您可以通过注释掉其中包含'Three'的每一行来完成此操作.)您可以通过输入默认代码来测试第二行.这是行星疯狂的地方.
这个问题似乎是一个谜,起源于我从未探索过的一些计算机科学领域(尽管我是一个菜鸟).为了我的头发,如果有人能解释,我会非常感激.
代码开头:
PVector planetOneLocation = new PVector(300, 200);
PVector planetOneSpeed = new PVector(0, -.1);
float planetOneMass = 1;
PVector planetTwoLocation = new PVector(100, 200);
PVector planetTwoSpeed = new PVector(0, .1);
float planetTwoMass = 1;
PVector planetThreeLocation = new PVector(200, 200);
PVector planetThreeSpeed = new PVector(0, 0);
float planetThreeMass = 10;
float g = 5;
void setup() {
size(500, 500);
}
void draw() {
updatePlanetOne();
updatePlanetTwo();
updatePlanetThree();
planetOneLocation.add(planetOneSpeed);
planetTwoLocation.add(planetTwoSpeed);
planetThreeLocation.add(planetThreeSpeed);
background(0);
ellipse(planetOneLocation.x, planetOneLocation.y, 10*planetOneMass, 10*planetOneMass); …Run Code Online (Sandbox Code Playgroud) 我用P5.js创建的简单游戏包括一个球,该球在重力作用下掉落并在地面反弹。我想在球触地时为其添加“压缩”动画,以使其看起来更逼真。
我该如何做而又不会显得怪异?
代码是这样的:
function Ball() {
this.diameter = 50;
this.v_speed = 0;
this.gravity = 0.2;
this.starty = height / 2 - 100;
this.endy = height - this.diameter / 2;
this.ypos = this.starty;
this.xpos = width / 2;
this.update = function() {
this.v_speed = this.v_speed + this.gravity;
this.ypos = this.ypos + this.v_speed;
if (this.ypos >= this.endy) {
this.ypos = this.endy;
this.v_speed *= -1.0; // change direction
this.v_speed = this.v_speed * 0.9;
if (Math.abs(this.v_speed) < 0.5) {
this.ypos = this.starty;
}
} …Run Code Online (Sandbox Code Playgroud)我想要嵌套的模具在OpenGL中工作。从现在起,我称它们为面具。
因此,模板缓冲区被清除为全0。我做我的第一个面具,灰色区域。
现在必须在模板缓冲区中全为1,并且不允许在该蒙版之外进行正常绘制。
现在,我创建第二个遮罩,该遮罩是第一个遮罩的子代:如果该区域在上一个遮罩的区域内,则只会更新模板缓冲区:
如果我们要制作另一个子蒙版,则相同,仅当它在父蒙版中时才增加。
现在,如果我们要结束最后一个蒙版(绿色蒙版),则可以将值减小到等于蒙版深度的位置。
好的,那是个主意,但是我一直坚持让它工作数周(不是全职...)。
屏蔽不起作用,或者它无法按预期方式工作。在这里,我提供了对我来说最有意义的代码。
我使用处理,可以在这里https://processing.org/下载(下载并运行,就这么简单)。
PGL pgl;
Rect current_rect;
void setup() {
size(600, 600, P3D);
noStroke();
// will have a depth of 0, equal to the stencil buffer after a clear
current_rect = make_rect(null, 0, 0, width, height);
}
class Rect {
float x;
float y;
float w;
float h;
ArrayList<Rect> children = new ArrayList<Rect>();
Rect parent;
int mask_depth;
}
Rect make_rect(Rect parent, float x, float y, float w, float h) {
Rect r …Run Code Online (Sandbox Code Playgroud) 我在使用Processing 3.3.6(x64)for Windows 10 来识别我的LG V20安卓设备时遇到了麻烦.
起初,NoClassDefFoundError当我尝试运行草图时,我得到了一个,并且Android SDK更新程序有2个建议的更新,由于更多错误我无法安装.我的手机没有列在Processing中.该设备是我启用USB调试,连接工作; 我可以传输文件.
在通过互联网阅读时,我没有提出任何建议或成功,我尝试卸载计算机上所有与Android相关的文件,以及任何与处理相关的文件.我卸载了Java,JRE和JDK.然后我重新安装它们:
Java 8u161 JDK和JRE
处理3.3.6
Android SDK(由Processing自动安装)
这一切安装没有抱怨,一切似乎都很好.但是,Processing仍无法找到或识别我的设备.我也在我的笔记本电脑上尝试了这些确切的步骤,这些步骤大部分都是干净安装的Windows 10(除了镀铬和一些英国媒体报道),结果相同.
我也试过通过Processing的模拟器运行一些东西; 我可能做错了,但这会出现"启动时与模拟器失去联系"错误.
从这一点来看,感觉就像手机一样,因为它在多台PC上.但它也是PC的问题,因为它发生在手机和模拟器上.坦率地说,我对于问题是什么感到茫然.
我不确定我还能做什么或尝试什么; 我没有在其他任何地方找到我的问题,并尝试解决所有类似的问题没有成功.有人有什么想法吗?
编辑:我解决了这个问题.我找到了adb.exe的位置,并在该位置的cmd中运行了"adb devices".它列出了一个设备(我的),并表示它是未经授权的.我的手机上出现提示,确认后,设备已获得授权.