javascript - 如何在 p5.js 中实现用户交互?我知道 p5 本身不支持交互,但有没有办法让我自己编写?

标签 javascript algorithm web-services user-interface p5.js

所以我正在尝试实现一个用 p5.js 编写的数据可视化工具(因为它为我提供了一个 Canvas 来绘制我的可视化)。数据类型是一个具有属性的 javascript 对象:名称和一个子数组,可视化是一个简单的递归树,其中每个分支代表一个节点。主要的绘图功能已经编写和测试。

我知道 p5 没有开箱即用的任何交互,因此当我尝试编写用户交互时我面临一个障碍,主要是,我想到当用户将鼠标悬停在一个节点(即一个分支)上时) 它应该显示代码的名称,其次,当用户点击节点时,应该以点击的节点为根绘制一棵新树(并可能通过点击新树的根恢复到原来的状态).

我不会发布我的代码,因为这是一个小组项目,其他小组成员不会欣赏我发布代码。所以我并不是在寻找具体的代码,而是在寻找实现它们的想法和/或算法。

我期待有关如何实现此类功能的建议。谢谢!

最佳答案

P5.js 确实支持用户输入。查看 the reference事件部分.

例如,这是一个草图,显示一个绿色圆圈,当您将鼠标悬停在它上面时该圆圈会变成红色:

function setup() {
  createCanvas(400, 400);
}

function draw() {
  if(dist(mouseX, mouseY, width/2, height/2) < 100){
        fill(255, 0, 0);
    }
    else{
        fill(0, 255, 0);    
    }

    background(32);
    ellipse(width/2, height/2, 200);
}

无耻的 self 推销:here是关于用户输入的教程。它是为处理而编写的,但许多相同的原则适用于 P5.js。

如果您仍然遇到问题,请在新帖子中提出更具体的问题。无论如何你不应该发布你的完整程序 - 相反,请尝试将你的问题缩小到 MCVE .

关于javascript - 如何在 p5.js 中实现用户交互?我知道 p5 本身不支持交互,但有没有办法让我自己编写?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50748484/

相关文章:

algorithm - 有什么方法可以预测搜索空间中的局部最优值吗?

algorithm - 计算走 1、2 或 3 步后爬 n 步的方法

javascript - 这个 NumberComplement 函数的时间复杂度是多少?

objective-c - Restkit路由错误

c# - 设计 : Website calling a webservice on the same machine

javascript - 用于网络应用程序开发的 sproutcore 或 cappucino?

javascript - 日期正则表达式允许输入框验证

javascript - 更改一个图标,而不是全部

java - Spring WS DefaultWsdl11定义错误

javascript - 在 amcharts 中单击时突出显示单个条形