【发布时间】:2017-07-08 05:20:54
【问题描述】:
我必须根据机器人编码器电机的反馈在处理过程中绘制图表。所以我有两个变量,基本上是左电机编码器和右电机编码器。我计划在 x 轴和 y 轴上变化。当我浏览了网上的一些代码时,我发现几乎每个人都在串行事件本身中编写了图形部分代码?
所以我的第一个疑问是他们为什么将它写在串行 event() 函数而不是 void draw() 中?另一件事是,当我尝试在 void draw() 中为图形编写代码时,它有一个类似这样的伪代码:
xpos1=0,ypos1=height;
void draw():
line(xpos1,ypos1,xpos,height-ypos);// obviously the data(xpos,ypos) is mapped with the width and height of the processing ide window.
xpos1=xpos;
ypos1=height-ypos;
if(xpos1>=width)
{
xpos1=0;
}
if(ypos1>=height)
{
ypos1=0;
}
所以我只能在处理 ide 窗口上看到一个小点,我看不到我的线路所经过的旧路径,对于我在串行事件中编写类似代码时描述的站点而言( ) 他们在处理窗口上制作了一个完整的图表。
我哪里错了?还有其他方法可以使用 void draw() 绘制图形吗?当我从左电机和右电机获得两个反馈时,我想同时改变 xpos 和 ypos。
我在不同帧中尝试的图表的屏幕截图!
由与上面显示的代码有些相似但编写在 Internet 上可用的串行 event() 中的图形之一的屏幕截图:
【问题讨论】:
-
你能发一个minimal reproducible example吗?现在忘记连续的东西。你能画出
mouseX随时间变化的变量吗? -
我认为这里有两个很多子问题。请将其缩减为您要修复的第一件事,添加 Kevin 请求的 MCVE。它现在感觉相当广泛并且“解决所有问题”。
-
@KevinWorkman 好的,让我尝试随着时间的推移绘制 mouseX 变量,我将相应地编辑问题。在那之前,请告诉我为什么他们在串行事件()而不是 void draw()中编写绘图代码?我正在向您发送一份参考资料:arduining.com/2013/08/05/arduino-and-processing-graph-example
-
@SaadAnwar 没有一种正确的方法可以做到这一点。任何一种方法都很好。在您的更简单的示例程序中,您将面临类似的决定:您是将它放在
draw()函数中还是将它放在mouseMoved()函数中?任何一个都可以。您只需要了解差异并为您选择的方法做正确的事情。
标签: graph arduino processing