我真的很喜欢处理 ( http://processing.org )所做的工作,但我更多地接触 .Net 世界并希望留在那里。.Net 中是否有一个库或子语言非常注重艺术家的易用性?
Processing 和 OpenFrameworks 之所以出色,是因为从代码创建动画和其他视觉艺术非常容易,而无需担心其他部分。
这是一个关于Processing.org的问题。
我通过在每个帧的视图上绘制一个半透明的白色矩形来淡出以前绘制的对象。
然而,它们似乎永远不会褪色到完全白色。褪色在一些明显的非白色灰色阴影处有一个固定点。尝试淡入黑色时也会发生同样的事情。
这是 alpha 混合如何在处理中工作的标准功能吗?有没有一种相对简单的方法来实现完全白色的背景(给定足够的步骤)?
我想象得到的颜色将是混合颜色的线性组合,这意味着限制应该是白色。也许非白色固定点是四舍五入的人工制品?
说明问题的示例代码:
void setup() {
size(300,300);
background(0);
noStroke();
frameRate(15);
}
void draw() {
fill(255,10);
rect(0,0,width,height);
fill(255);
rect(0,0,50,50); // for comparison to white
}
Run Code Online (Sandbox Code Playgroud)
编辑:添加了java标签,希望得到更多关注
在处理(java方言)中有方法screenX,screenY(和screenZ,但我们现在跳过它).
假设我有一个xyz = 50,100,500的对象.然后使用screenX和screenY,你现在可以在画布上显示它们的位置.
float x = screenX(50, 100, 500);
float y = screenY(50, 100, 500);
这里是参考:http: //processing.org/reference/screenX_.html
我感兴趣的是反方法.例如,我想在x = 175和y = 100的画布上使用球体到apear.球体应该具有700的az.然后,实际的x和y位置在z = 700处,使其在画布上以175,100的形式出现?
所以该方法将是float unscreenX(float x, float y, float z),它将返回x值.
我的数学/编程技巧不是那么先进(让我们称之为糟糕)(我更像是设计师)所以我正在寻求一些帮助.我已经准备好在加工板上问过了,但是这里有更多的人对矩阵等有更深入的了解.
处理中的常规screenX方法可以在这里找到:https: //github.com/processing/processing/blob/master/core/src/processing/opengl/PGraphicsOpenGL.java
public float screenX(float x, float y, float z) {
return screenXImpl(x, y, z);
}
protected float screenXImpl(float x, float y, float z) {
float ax =
modelview.m00*x + modelview.m01*y + modelview.m02*z + modelview.m03;
float ay =
modelview.m10*x + modelview.m11*y …Run Code Online (Sandbox Code Playgroud) 我正在使用一些简单的基于 openni 的处理应用程序来破解 Kinect,我打算很快发表一个演讲,我发现了一个似乎可以控制电机的 API。有一个 moveKinect 方法似乎已添加到主 ContextWrapper 界面,但我似乎无法让它工作。查看 svn 历史和发行说明,它似乎是去年添加的,并附有说明它不适用于最新驱动程序(5.1.02,Linux64)的说明。我试过调用该方法以提供度数和弧度值,但没有任何反应。我没有错误,也没有动作。有没有其他人玩过这个?我正在运行第二个到最新的处理 2.0 版本(处理 2.0.1 的链接不起作用)和我可以下载的最新 SImpleOpenNI 包。
我在这里的第一篇文章,所以我将尽量保持简单。我正在尝试使用Processing创建一些质谱数据的图。我想写一个草图,将伪XML中的数据解析为表格,然后将该数据绘制为2轴(时间,mz)上的点,而第3轴即信号作为点的颜色。
在此阶段,我希望绘图为数据的尺寸。在我的测试数据中,这是x轴上的38个时间点,Y轴上的51 mz点,信号范围是0到12,000。实际数据集的边界在每个维度上都会大一百倍。
我的问题是,绘图的宽度和高度取决于数据,建立这些限制涉及一些代码。在处理中,您只能在void setup()之后立即调用size(),因此我将所有计算代码放在首位。这引发标题错误。我无法解决它,因此我将数据输出到三个csv文件,并从第二个草图开始,以导入该数据并对其进行绘制。我遇到了同样的错误。
确切的错误是期望EOF,位于''处,其中可能是一行中的第一个单词。根据我尝试的代码,它适用于,mzTable和if。
这是完整的第二个草图:
import java.io.*;
int debug = 1;
String target = "M1A crop.txt"; // test data
File file = new File(target);
// ~ ~ ~
String folderPath = file.getParent(); // target folder path
String name = file.getName();
String mzData = folderPath + "\\" + name + " - mz data.csv" ; // CSV file to open
String signalData = folderPath + "\\" + …Run Code Online (Sandbox Code Playgroud) 我的目标是将一个点数组传递给着色器,计算它们与碎片的距离,并用一个渐变的圆圈绘制它们,这个圆形取决于该计算.
例如:
(从我在着色器玩具上设置的工作示例)
不幸的是,我不清楚如何计算和转换在着色器内传递的处理坐标.
我目前正在尝试将两个浮点数 - 一个用于x位置,一个用于每个点的y位置 - 通过一个制服传递到着色器.然后在着色器中迭代遍历每个点,如下所示:
#ifdef GL_ES
precision mediump float;
precision mediump int;
#endif
uniform float sourceX[100];
uniform float sourceY[100];
uniform vec2 resolution;
in vec4 gl_FragCoord;
varying vec4 vertColor;
varying vec2 center;
varying vec2 pos;
void main()
{
float intensity = 0.0;
for(int i=0; i<100; i++)
{
vec2 source = vec2(sourceX[i],sourceY[i]);
vec2 position = ( gl_FragCoord.xy / resolution.xy );
float d = distance(position, source);
intensity += exp(-0.5*d*d);
}
intensity=3.0*pow(intensity,0.02);
if (intensity<=1.0)
gl_FragColor=vec4(0.0,intensity*0.5,0.0,1.0); …Run Code Online (Sandbox Code Playgroud) 我一直在使用Processing 3.0,当我的Arduino输出某些值时,我正在尝试打印一个简单的时间戳,但它无效.我尝试使用SimpleDateFormat,但它总是返回1970.01.17 17:48:35 GMT,而不是实际时间.以下是MVCE:
void setup ()
{
SimpleDateFormat format = new SimpleDateFormat ("yyyy.MM.dd HH:mm:ss z");
format.setTimeZone (TimeZone.getDefault());
long timestamp = getTimeNow();
println(format.format(new Date(timestamp)));
println(timestamp);
}
long getTimeNow ()
{
Date d = new Date ();
Calendar cal = new GregorianCalendar();
long current = d.getTime()/1000;
long timezone = cal.get(Calendar.ZONE_OFFSET)/1000;
long daylight = cal.get(Calendar.DST_OFFSET)/1000;
return current + timezone + daylight;
}
Run Code Online (Sandbox Code Playgroud)
输出示例:
1970.01.17 17:48:35 GMT
1442915733
Run Code Online (Sandbox Code Playgroud)
我怀疑问题是什么getTimeNow(),因为,如果我将值插入在线纪元转换器,我得到正确的时间.上面的代码有什么问题?
我正在尝试将 Processing 3 集成到一个 Swing 应用程序中,但由于 PApplet 不再扩展 Applet,我不能立即将其添加为组件。
有没有将 Processing 3 草图嵌入 Swing 中的方法,如果我可以在没有 PDE 的单独窗口中打开草图就足够了。
当我在 Processing(草图 > 导入库 > 添加库)中添加库时,它安装在哪里?
我正在为学校项目制定遗传算法。目前,我正在为移动并拾取食物的“点”对象建立基础。我写了一些我认为应该可以做到的代码,经过一番尝试和错误之后,我想到了这个。(这可能不是最干净的代码,我也希望听到一些有关此的提示)。该代码的唯一问题是该对象不仅会拾取1种食物,而且还会拾取多种食物,我不知道为什么。
我尝试将食物对象索引放在单独的数组中,以便稍后可以从食物数组中将其删除(当我知道要删除>>的索引时
targetIndex)
checkForTarget() {
let inRange = new Array();
let indexArray = new Array();
for (let i = 0; i < food.length; i++) {
let d = dist(food[i].pos.x, food[i].pos.y, this.pos.x, this.pos.y);
if (d < this.sense) {
inRange.push(food[i]);
indexArray.push(i);
}
}
if (!inRange.length == 0) {
let closest = this.sense; // this.sense = radius
let target, targetIndex;
for (let i = 0; i < inRange.length; i++) {
let d = dist(inRange[i].pos.x, inRange[i].pos.y, this.pos.x, this.pos.y);
if (d < closest) { …Run Code Online (Sandbox Code Playgroud)