所以我现在已经在Processing工作了几个星期,虽然我没有编程方面的经验,但我已经转向了更复杂的项目.我正在编程一个进化模拟器,它会生成具有随机属性的生物.
最终,我将添加复制品,但截至目前,这些生物只是漂浮在屏幕周围,并且稍微跟着鼠标.它与来自线路的声音相互作用,但我对这些部分进行了评论,以便可以在画布上查看,它不应该真正改变问题,我只是想我会指出它.
截至目前,帧速率对我来说远非理想,随着更多生物的产生,它逐渐降低.我是否犯了一些基本错误,或者我只是每帧运行太多功能?
这里的源代码,你可以在浏览器中玩它在这里:
//import ddf.minim.*;
//import ddf.minim.signals.*;
//import ddf.minim.analysis.*;
//import ddf.minim.effects.*;
//Minim minim;
//AudioInput in;
boolean newCreature = true;
boolean matured[];
int ellipses[];
int hair[];
int maxCreatureNumber = 75;
//int volume;
//int volumeTolerance = 1;
int creatureIndex = -1;
int creatureX[];
int creatureY[];
float strokeWeightAttribute[];
float creatureSize[];
float creatureEndSize[];
float creatureXIncrement[];
float creatureYIncrement[];
float bubbleSize;
float easing = 0.05;
float angle = 0.00;
color colorAttribute[];
void setup() {
background(0);
size(1000,500);
noFill();
//minim = new Minim(this); …Run Code Online (Sandbox Code Playgroud) 我在处理时有几个浮点值,小数位数超过8位.
在使用text()它们之前,如何将这些值舍入到十分之一?
我在Processing中做了一个简单的小游戏,但需要一些帮助.我有一个mp3,并希望将它添加到我的应用程序,以在后台循环运行.
这可能吗?非常感谢.
我在这里查看过很多帖子,看不出我需要的解决方案......
我收到错误:
the method initTimer(untitled.Object, String, int int) in the type untitled.TimerClass is not applicable for the arguments (untitled.Toon, String, int, int)
Run Code Online (Sandbox Code Playgroud)
这让我发疯了.
timers.initTimer(character, "regenAdd", 0,3);
Run Code Online (Sandbox Code Playgroud)
以上行是抛出错误的行,以下是函数:
public void initTimer(final Object obj, final String method, int delay, int period) {
delay*=1000;
period*=1000;
final Class<?> unknown = obj.getClass();
new Timer().schedule(new TimerTask() {
public void run() {
try {
//get the method from the class
Method whatToDo = unknown.getMethod(method, null);
try {
//invoke() the object method
whatToDo.invoke(obj);
} catch(Exception e) {
println("Exception …Run Code Online (Sandbox Code Playgroud) 我目前正在将Processing用于一个小项目,但是我不喜欢它随附的文本编辑器。我用vim编写所有代码。我找到了.pde文件所在的位置,并且已经在vim中对其进行编辑,然后重新打开它们并运行它们(重新加载脚本并运行它需要很多时间)。这就是为什么我想要一个可以在终端上编译所有内容的解决方案。
仔细检查后,我发现了应该编译并运行草图的Processing-java文件。但是,无论我提供什么参数,它都会不断吐出帮助页面。这是我如何运行它们的示例。
(PS:我制作了一个运行Processing-java的脚本并将其添加到/ usr / bin)
processing-java --sketch=/home/george/sketchbook/testproject --output=/tmp/processing/test --force --run
有人可以帮我从终端上运行我的草图吗?
我有一个程序写入处理(处理实时音频)和一个用python编写的程序(调用gatttool通过蓝牙低能量与外围设备通话).有没有一种直接的方法将值从处理发送到python?我应该创建一个串行连接并以这种方式传递字节吗?
我在Processing(Java)中编写了一个简单的Sphere Tracer,并将其移植到WebGL/GLSL.当我在处理写我有一个基类Shape并将其扩展为特定的形状,例如Box,Plane,Sphere等每个特定的形状已经那名相关的它,例如成员Sphere的实例有半径,Box实例有长度矢量,等另外每个都具有形状特定的距离函数.
不幸的是我不能在GLSL中使用这样的类,所以我创建了一个struct可以表示任何形状的单词(我在Object下面引用它):
struct Object {
vec3 pos, len, nDir;
float rad;
} objects[4];
Run Code Online (Sandbox Code Playgroud)
然后我为每种形状写了一个距离函数:
float boxSignedDist(Object inBox, vec3 inPos) {
vec3 boxDelta = abs(inPos-inBox.pos)-inBox.len;
return min(max(boxDelta.x, max(boxDelta.y, boxDelta.z)), 0.0)+length(max(boxDelta, 0.0));
}
float planeSignedDist(Object inPlane, vec3 inPos) {
return dot(inPos-inPlane.pos, inPlane.nDir);
}
float roundBoxUnsignedDist(Object inRoundBox, vec3 inPos) {
return length(max(abs(inPos-inRoundBox.pos)-inRoundBox.len, 0.0))-inRoundBox.rad;
}
float sphereSignedDist(Object inSphere, vec3 inPos) {
return length(inPos-inSphere.pos)-inSphere.rad;
}
Run Code Online (Sandbox Code Playgroud)
现在我遇到了一个不同的问题,即用另一个函数(如旋转)包装形状特定的距离函数,如何在GLSL中有效地完成这一操作并不明显.我添加了一个成员Object, …
我在p5.js中创建一个简单的动画程序.当用户单击"保存"按钮时,我想下载动画视频.
我有一个名为frames每个键被标记的对象frame_1,frame_2依此类推.与每个键关联的值是array构成该帧的线段之一.
我试图想出一种方法来获取这些数据并创建一个mp4视频.p5.js有一个内置的保存功能,我认为可能会有所帮助,但它本身并不是一个完整的解决方案.我可以将每个帧保存为单个图像,然后以某种方式将这些图像拼接在客户端,但我还没有找到解决方案.
任何其他方法也会很棒.唯一的要求是它是客户端完成的.
我希望这里允许这样一个开放式问题。我正在研究一个简单的 GA,它将演变一个字符串输出以匹配给定的目标字符串。因此,每一代都将创建 N 个字符串的群体,每个字符串都将根据其与目标字符串的汉明距离分配一个适合度。然后我需要某种方式来存储和排序这些信息。我正在处理,但 Java 中的解决方案几乎总是可以在这种语言中使用导入。
由于我所追求的是模糊的键值结构,我的直觉是我想要某种字典,但我对使用这些的经验很少。还有一些复杂情况使我们无法理解字典的工作原理。我想做以下事情:
存储每个字符串及其关联的适应度。这两者的副本必须是可能的。
按值对结构进行排序,即按其适应度的降序列出总体。
剔除底层 50% 的人口。可能最简单的方法是直接用适合人群的后代替换不适合人群。
访问时间/计算效率不是特别关注的问题。
昨晚我尝试使用 HashMap 解决这个问题,但我一直遇到问题,例如在此结构下不允许重复键,而且我找不到一种简单的方法来遍历 HashMap 并仅更改底部的 X%按值输入。
总而言之,我需要一个结构,其中每个条目都由一个 String 和一个 integer 组成,可以存储每个的重复项,该结构可以按整数值按降序排序,因此条目的顶部或底部 X% 可以是在不影响其余的情况下进行手术。
非常感谢您的时间,任何帮助将不胜感激。
java processing dictionary genetic-algorithm data-structures
我使用这个公式来计算二次曲线上的点:
cPx2 = (1-t)*(1-t)* x1+2 * (1-t)*t*qcX + t*t*x2;
cPy2 = (1-t)*(1-t)* y1+2 * (1-t)*t*qcY + t*t*y2;
Run Code Online (Sandbox Code Playgroud)
当我设置 t = 10 并遍历曲线时,我得到了这个:
看起来它正在获得曲线上的点(花朵形状),但也获得了“控制点”上的所有点。
我用这个公式来生成点:
flowerArray=[]
for(let i = 0; i < numVertices+1; i++) {
angle = i * spacing;
x = centerX + cos(radians(angle)) * 180;
y = centerY+ sin(radians(angle)) * 180;
if(i == 0) {
flowerArray.push(x,y);
}else {
cAngle = angle - spacing/2;
cX = centerX + cos(radians(cAngle)) * 100;
cY = centerY+ sin(radians(cAngle)) * 100;
flowerArray.push(cX,cY,x,y)
}
} …Run Code Online (Sandbox Code Playgroud) processing ×10
java ×4
p5.js ×2
arguments ×1
dictionary ×1
glsl ×1
javascript ×1
object ×1
optimization ×1
python ×1
video ×1
webgl ×1