在这里发帖,可能很简单.
我从Processing的参考站点获得了代码:
float a = 0.0;
float inc = TWO_PI/25.0;
for(int i=0; i<100; i=i+4) {
line(i, 50, i, 50+sin(a)*40.0);
a = a + inc;
}
Run Code Online (Sandbox Code Playgroud)
http://processing.org/reference/sin_.html
然而,我需要的是一条跟随Sin波曲线的线,而不是沿曲线表示点并在0轴结束的线.所以基本上我需要绘制一个带有sin波方程的"S"形状.
有人可以告诉我如何做到这一点?
提前谢谢你,-Askee
我试图将一条线分成多个部分.因为我在下面创建了一个函数来尝试获得两点之间的子点.它不是很有效,但几乎就在那里.理想情况下,我想使用这样的东西:
subPoint(point1, point2, 5, 10); // this would return the half way point
subPoint(point1, point2, 1, 10); // this would return a point 1 tenth towrds point2
Run Code Online (Sandbox Code Playgroud)
以下是粗略的代码 - 非常欢迎任何提示或指示.
Vector subPoint(Vector startPoint, Vector endPoint, int segment, int totalSegments) {
int division = (int)(totalSegments / segment);
PVector divPoint = new PVector();
int midX=(int)(startPoint.x+((endPoint.x-startPoint.x)/division));
int midY=(int)(startPoint.y+((endPoint.y-startPoint.y)/division));
divPoint.set(midX, midY, 0);
return(divPoint);
}
Run Code Online (Sandbox Code Playgroud) 作为进入Processing的小作业,我必须编写一些代码来获得以下内容:

运用
public void setup() {
size(300,200);
noFill();
rect(100, 20, 40, 80);
ellipseMode(CENTER);
fill(#000000);
ellipse(width/2, height/2, 5,5);
noFill();
translate(width/2, height/2);
rotate(radians(65));
rect(-20, -40, 40, 80);
}
public void draw() {
}
Run Code Online (Sandbox Code Playgroud)
到目前为止,这个工作非常好.但我不喜欢我必须更改底部rect指令内部的坐标才能使旋转正确.我知道通过旋转你不会旋转单个元素,实际上是整个坐标系.我不知道的是,translate在输出指令中输入哪些值如上图所示,同时仍然在rect命令中使用相同的坐标.
任务已经完成了我使用的代码,我只是不喜欢它太多.所以这不仅仅是要求别人做我的作业而是纯粹的兴趣.
编辑:更广泛的问题尝试:如何知道哪些值在旋转之前进入平移以获得我想要的任何结果?有没有办法计算它们?当然,这不只是尝试,是吗?
问题摘要:我无法在Android设备上运行程序,也无法在模拟器中运行程序.我安装了Android SDK 2.33(API10)和所有组件,也包括4.1和更高版本.我为HTC EVO V 4G(维珍移动)安装了新的USB驱动程序,但仍然没有.我检查了SDK的路径,处理正确找到它.我花了一整天在线研究它,重新安装SDK,安装Processing 2.0 64位(因为我的SDK是64位)等等.
我正在尝试运行任何程序,甚至模板和空白列表.它总是给我同样的错误,无论我是在模拟器上运行还是通过我的Android设备运行它.控制台告诉我:Android工具内部出错,请检查控制台
我的错误和编译消息
-set-mode-check:
-set-debug-files:
-check-env:
Android SDK Tools Revision 22.0.1
Installed at F:\ANDROID SDK\sdk
-setup:
[echo] Project Name: SonicPainterAndroid
Project Type: Application
-set-debug-mode:
-debug-obfuscation-check:
-pre-build:
-build-setup:
Using latest Build Tools: 17.0.0
[echo] Resolving Build Target for SonicPainterAndroid...
Project Target: Android 2.3.3
API level: 10
[echo] ----------
[echo] Creating output directories if needed...
[mkdir] Created dir: C:\Users\SEBAST~1\AppData\Local\Temp\android1631735927318765460sketch\bin
[mkdir] Created dir: C:\Users\SEBAST~1\AppData\Local\Temp\android1631735927318765460sketch\bin\res
[mkdir] Created dir: C:\Users\SEBAST~1\AppData\Local\Temp\android1631735927318765460sketch\gen
[mkdir] Created dir: C:\Users\SEBAST~1\AppData\Local\Temp\android1631735927318765460sketch\bin\classes
[mkdir] Created dir: C:\Users\SEBAST~1\AppData\Local\Temp\android1631735927318765460sketch\bin\dexedLibs …Run Code Online (Sandbox Code Playgroud) 我正在玩处理和奇迹,如果我可以将数据从处理发送到JavaScript应用程序.是否有可能创建一个具有处理功能的(例如websocket)服务器?
提前致谢!
我正在试图解决这个问题......这个点应该位于鼠标指向的地方的边界上.换句话说,在矩形边界线与矩形中心和鼠标指针之间的线之间交叉.我需要以某种方式使用三角函数,因为矩形可能会旋转.下面的代码(处理中)使我能够绘制点,但只能在南边界...
int size = 200;
void setup() {
size(1200,500);
smooth();
ellipseMode(CENTER);
rectMode(CENTER);
}
void draw() {
background(255);
noFill();
PVector center = new PVector(width/2,height/2);
PVector mouse = new PVector(mouseX, mouseY);
float mouseDistance = PVector.dist(center,mouse);
mouse.sub(center); // mouse coordinates relative to center point
float t = atan2(mouse.y, mouse.x);
float borderDistance = (size/2) / sin(t);
float bx = cos(t) * borderDistance;
float by = sin(t) * borderDistance;
pushMatrix();
translate(center.x, center.y);
strokeWeight(5);
stroke(255,0,0);
point(0,0);
point(mouse.x, mouse.y);
point(cos(t)*size/2, sin(t)*size/2);
point(bx,by);
strokeWeight(1);
stroke(0);
ellipse(0, 0, size, …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用以下命令向我的ArrayList添加名为activList的元素:
activList.add(new Fiducial(iD, x, y ));
Run Code Online (Sandbox Code Playgroud)
但是在运行代码时,我在这一行得到一个NullPointerException:
int cols = 10, rows = 10;
int rectangleWidth = 100;
int rectangleHeight = 60;
// these are some helper variables which are used
// to create scalable graphical feedback
int k, l, iD;
float cursor_size = 15;
float object_size = 60;
float table_size = 760;
float scale_factor = 1;
float x, y;
ArrayList<Fiducial> activList ;
public class Fiducial {
public int iD;
public float x;
public float y;
public Fiducial(int iD, float …Run Code Online (Sandbox Code Playgroud) 在Java/Processing中,我想测试贝塞尔曲线是否与圆重叠,以便我可以将其中一个偏移.
有一个简单的方法吗?
我正在尝试让Processing绘制正弦波。但是,它看起来像是输出中正弦波的采样错误版本。我需要用一系列线条代替形状,还是有其他解决方案?
我尝试将变量强制转换为float,然后更改c++为c += 1。
noFill();
stroke(255);
beginShape();
translate(0, 100);
for (int c = 0; c <= width; c += 1)
{
vertex(c, (float) 100 * sin(c / 50));
}
endShape();
Run Code Online (Sandbox Code Playgroud)
我希望它逐个像素地遍历窗口,从而创建一个平滑的形状。我实际得到的是似乎要采样的东西,如下所示。
量化正弦波
dist() 计算两个点之间的距离,但是我想计算5个点之间的距离(一个圆点与一个矩形中的四个点之间的距离(每个角都有一个点))我该怎么做?
intersects(other){
let di = dist(this.x, this.y, other.x, other.y)
let di2 = dist(this.x, this.y, other.x + 80, other.y)
let di3 = dist(this.x, this.y, other.x, other.y + 150)
let di4 = dist(this.x, this.y, other.x + 80, other.y + 150)
if (di && di2 && di3 && di4 <= this.r) {
return true;
} else {
return false;
}
}
Run Code Online (Sandbox Code Playgroud)
我试图对其进行硬编码,但是if函数仅使用“ di4”
processing ×10
java ×5
javascript ×2
trigonometry ×2
android ×1
geometry ×1
p5.js ×1
rotation ×1
sdk ×1
vector ×1
waveform ×1
websocket ×1