我想从Processing用户界面调用一些.NET程序集来处理一些数据和库函数.实现这一目标的最佳方法是什么?公开网络服务?一个RESTful API?一些被遗忘的处理/ Silverlight怪物?
欢迎好主意.
如果它是一个点,那将是
dist(mouseX, mouseY, x, y)
Run Code Online (Sandbox Code Playgroud)
对于
point(x,y)
Run Code Online (Sandbox Code Playgroud)
但是如何从鼠标的当前位置计算dist()
rectMode(CORNERS);
rect(x1,y2,x2,y2);
Run Code Online (Sandbox Code Playgroud)
谢谢
对于那些不知道的人,Processing是一个很棒的Java库=用于渲染数据的良好可视化,并作为JOGL的包装器.
Processing.js是此库的Javascript端口.
要在HTML中创建处理小程序,您需要3件事.
我基本上是在试用js版本,问题是如果pde中包含任何库,它将不会在画布中加载.
这里有两个例子:
我有2个假设:
我有以下代码改编自旋转文本的在线示例.代码工作正常,因为它将文本旋转到正确的角度,但我想知道是否有办法提高旋转文本的准确性和清晰度.在我的显示器上看起来好像旋转的文本是"步进"而不是平滑.
PFont f;
String message = "abcdefghijklmnopqrstuvwxyz";
float theta, x;
void setup() {
size(800, 200);
f = createFont("Arial",20,true);
}
void draw() {
// background(255);
fill(0);
textFont(f); // Set the font
translate(x,height/2); // Translate to the center
rotate(theta); // Rotate by theta
textAlign(LEFT);
text(message,0,0);
theta += 0.1; // Increase rotation
x += textWidth(message);
if (x>800){noLoop(); }
}
Run Code Online (Sandbox Code Playgroud)
我通过示例进行了修改,以帮助显示差异.在新代码中,我将文本更改为一串下划线,并以红色绘制参考线.如果它在您的机器上运行相同,您应该会看到由下划线创建的黑线中的交错.
String message = "________";
float theta, x;
PFont f;
void setup() {
size(800, 200);
f = loadFont("ArialMT-20.vlw");
smooth();
}
void draw() {
fill(0); …Run Code Online (Sandbox Code Playgroud) 我正在和患有脑瘫的残疾儿童一起工作.一个孩子的精细运动控制有限,所以她目前使用操纵杆来控制鼠标,并且它的移动速度设置得非常低.这对她很有用,因为她可以点击屏幕上的所有按钮,但我认为我们可以做得更好 - 当她想要遍历整个屏幕时需要一个年龄(大约10秒).
我的假设是她的大脑很好,只有她的运动控制能力差.如果这是真的,我相信一个低速启动但经历恒定加速的鼠标对她来说会更好,因为它会提高速度并在穿越整个屏幕时变得快速.如果这样可行,那么我们可以调整PID控制,以及为大量残疾人设置速度/加速度,从而加快他们的访问速度,从而加快他们的学习和发展.
但我不知道建立这个的最佳方式 - 欢迎所有建议,想法,链接和提示.
首先,我尝试使用Processing和Java,并使用mouseListener和Robot来控制光标.我不相信这是最好的方法,因为我正在读光标位置然后写入它,所以我最好的尝试仍然会让光标跳转,并且没有平稳的移动.它在Java中是否可以实现?我是否需要使用某种驱动程序从USB读取鼠标输入,然后将屏幕上的光标替换为我自己的?
我制作了几个视频来说明我想要带来的效果.
现状(我的插图是将光标从箭头键上移开) http://www.youtube.com/watch?v=3ZhQCg5DJt8
我想要的新行为(鼠标加速) http://www.youtube.com/watch?v=JcBK_ZCFGPs
如果它有用,我用于制作这些演示的处理代码将在下面复制:
现状演示:
import java.awt.AWTException;
import jav
a.awt.Robot;
Robot robot;
int i = 0;
int j = 0;
void setup() {
setupDotgame();
try {
robot = new Robot();
}
catch (AWTException e) {
e.printStackTrace();
}
robot.mouseMove(screenWidth/2, screenHeight/2);
}
void draw() {
//println(frameCount);
robot.mouseMove(screenWidth/2+8*i, screenHeight/2+8*j);
drawDotgame();
}
void keyPressed() {
if (keyCode == UP) {
j--;
}
else if (keyCode == DOWN) {
j++;
}
else if (keyCode == …Run Code Online (Sandbox Code Playgroud) 我正在运行最新版本的Processing(v2.1)和最新版本的Android SDK.我根据Processing网站上的教程安装了SDK,但该教程非常过时,我在该主题上找到的任何其他教程也是如此.当我在Processing Android模式下运行任何Android应用程序时,我收到此编译器错误:
-set-mode-check:
-set-debug-files:
-check-env:
Android SDK Tools Revision 22.3.0
Installed at /Users/anonymous/Desktop/Programming/adt-bundle-mac-x86_64-20131030/sdk
-setup:
[echo] Project Name: FirstAndroid
Project Type: Application
-set-debug-mode:
-debug-obfuscation-check:
-pre-build:
-build-setup:
Using latest Build Tools: 19.0.0
[echo] Resolving Build Target for FirstAndroid...
Project Target: Android 2.3.3
API level: 10
[echo] ----------
[echo] Creating output directories if needed...
[mkdir] Created dir: /var/folders/hw/4lr3l8jx2qs7rkk_m29qmm343hkg0f/T/android4330892161628182717sketch/bin
[mkdir] Created dir: /var/folders/hw/4lr3l8jx2qs7rkk_m29qmm343hkg0f/T/android4330892161628182717sketch/bin/res
[mkdir] Created dir: /var/folders/hw/4lr3l8jx2qs7rkk_m29qmm343hkg0f/T/android4330892161628182717sketch/bin/rsObj
[mkdir] Created dir: /var/folders/hw/4lr3l8jx2qs7rkk_m29qmm343hkg0f/T/android4330892161628182717sketch/bin/rsLibs
[mkdir] Created dir: /var/folders/hw/4lr3l8jx2qs7rkk_m29qmm343hkg0f/T/android4330892161628182717sketch/gen
[mkdir] Created dir: /var/folders/hw/4lr3l8jx2qs7rkk_m29qmm343hkg0f/T/android4330892161628182717sketch/bin/classes
[mkdir] Created dir: /var/folders/hw/4lr3l8jx2qs7rkk_m29qmm343hkg0f/T/android4330892161628182717sketch/bin/dexedLibs …Run Code Online (Sandbox Code Playgroud) 我正在使用处理,无法弄清楚如何将我的处理草图转换为.exe文件.到目前为止没有任何工作.
我在处理草图中的不同文件夹中有很多图像,我似乎无法弄清楚我需要采取的步骤以获得可执行文件和它所在的文件夹(您可以从互联网上下载的类型)
我想知道你是否可以通过解决这个我不知道如何修复的问题来帮助我正在教的一些高中生.这也有助于他们了解Stackoverflow的优秀资源.
我的学生正在尝试使用arduino创建一个具有实时检测功能的天气灯.python程序使用Yahoo API读取邮政编码所具有的天气状况,并每隔15分钟左右将其附加到文件中.
与此同时,我们的Arduino正在使用Processing来访问文件,将数字推入串口,arduino读取串口以打开正确的灯光以显示"天气"(晴天将打开黄色LED) .
我们的Processing和Arduino工作正常(它从文件读取并显示正确的灯光).它甚至可以在Processing和Arduino环境运行时运行,并且您手动将数字添加到文件中.通过向文件输出正确的天气,我们的Python文件也能正常工作.
问题......两个脚本无法同时运行.如果Python正在进行真实世界更新(每15分钟检查一次天气),则处理将不会触及该文件.在完成Python脚本并且我们启动Processing环境(再次)之后,将不会读取该文件.如果它不能访问文件并且灯光会随着时间的推移而改变,这就会破坏真实世界更新的目的和这个项目的重点.
在相关的说明中,我知道为Arduino使用Wifi Shield会更好,但是我们没有时间也没有资源来获取它.这是80美元,从开始到结束他们有一个星期做这个项目.
这是代码.
文件的外观
2, 3, 4, 3, 2
Run Code Online (Sandbox Code Playgroud)
2 - 晴天(打开引脚2)... 3 - 下雨(打开引脚3)......
Arduino的
void setup() {
// initialize the digital pins as an output.
pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
// Turn the Serial Protocol ON
Serial.begin(9600);
}
void loop() {
byte byteRead;
/* check if data has been sent from the computer: */
if (Serial.available()) {
/* read the most recent byte */
byteRead = Serial.read();
//You have to …Run Code Online (Sandbox Code Playgroud) 我在使用processing和opencv方面还很陌生,所以请多多包涵。我已经在stackoverflow和处理论坛上都发布了我的问题,以覆盖更广泛的受众并找到解决方案-抱歉,这似乎是我不小心进行交叉发布,因为这不是我的意图。
我一直在使用Arduino和Processing进行轻型安装。我正在捕捉使用带有网络摄像头和opencv的面部检测的人,并将其转换为可在16x32 LED矩阵面板上工作的照明装置。灯光装置是对正在观看灯光并同时进行录制的观众数量的一种响应-想法是,录制的人越多,闪烁的灯光显示就越大,并且当没有人观看/正在观看时录制后,灯光不会闪烁。
我设法使opencv能够检测到面部并将其输出到Arduino以显示在灯光上,但是我只能使灯光在不被检测到的情况下(而不是在被检测到的情况下)更强烈地闪烁。因此,这些灯反向工作,并且在没有人检测到时,它们闪烁得更多,而在有人检测到时,它们闪烁得更少。
我已经附上了我的Processing和Arduino代码以供参考,尽管我认为根本不需要更改Arduino代码。
(我在处理代码中突出显示了一个区域,我认为这是导致问题的部分)
我非常感谢谁知道可以更改此方法,以便面部检测触发更多的光线
谢谢
处理代码
import gab.opencv.*;
import java.awt.*;
import processing.video.*;
import processing.serial.*;
import java.awt.Color;
Capture video;
OpenCV opencv;
Serial myPort; // Create object from Serial class
int inByte = -1;
void setup()
{
size(640, 480);
video = new Capture(this, 640/2, 480/2);
opencv = new OpenCV(this, 640/2, 480/2);
opencv.loadCascade(OpenCV.CASCADE_FRONTALFACE);
video.start();
println(Serial.list());
//colorMode(HSB, 100,100,100);
String portName = Serial.list()[5];
myPort = new Serial(this, Serial.list()[5], 9600);
}
void draw() {
scale(2);
opencv.loadImage(video);
image(video, 0, 0 );
noFill(); …Run Code Online (Sandbox Code Playgroud) 我正在使用npm,webpack,babel环境使用p5.js编写应用程序。为了能够将草图作为模块,我将草图设置为实例模式,并将库和附加组件作为模块导入:
import p5 from 'p5';
import 'p5/lib/addons/p5.sound';
import 'p5/lib/addons/p5.dom';
Run Code Online (Sandbox Code Playgroud)
然后将它们加载到草图中的窗口中:
const sketch = (p5) => {
window.p5 = p5;
...
}
new p5(sketch);
Run Code Online (Sandbox Code Playgroud)
当我尝试使用时:
amp = new p5.Amplitude()
Run Code Online (Sandbox Code Playgroud)
我收到“ p5.Amplitude不是构造函数”错误。我的预测是在窗口上命名库p5与使用库中使用p5的构造函数(例如p5.Amplitude,p5.Vector,p5.Soundfile)之间存在冲突。我还没有找到在实例模式下使用这些对象或构造函数的解决方法。但是,我可以使用不需要构造函数的这些对象中的方法。例如,loadSound()是p5.Soundfile的方法。以下作品:
sound = p5.loadSound('assets/sound.wav)
但是当我尝试时,console.log(p5.SoundFile)我变得不确定。
我迷路了!