【发布时间】:2015-01-15 01:57:41
【问题描述】:
对于某个图像,我有一个列表,其中包含一个多边形中所有点的像素坐标,该多边形分割了它包含的所有对象(请看下图)。
例如,对于人,我有一个列表 l1 = [x0,y0,x1,y1,...,xn,yn],对于猫,我有一个列表 l2 = [x0',y0',x1',y1',...,xk',yk'],对于所有对象也是如此。
我有两个问题:
最好的
javascript库是用来在图像上绘制的?鉴于原始图像,我想获得如下所示的结果。我希望每个分段仅在鼠标悬停在其上方时才可视化。为此,我认为我应该将此绘图功能绑定到鼠标位置。
我正在考虑以下结构的东西,但不知道如何填补空白,请您给我一些指示吗?
$(.container).hover( function(e) {
//get coordinates of mouse
//if mouse is over one object
//draw on top of image the segmentation for that object
});
container 是包含图像的 div 的类,因此我应该能够获取鼠标的坐标,因为图像从 container div 的左上角开始。
【问题讨论】:
-
这是作业题吗?
-
我会看看 ImageMapster 插件;它是基于 jQuery 的(我知道您没有说或标记您的问题,但您的示例脚本是 jQ)并且它支持您描述的用例。 outsharked.com/imagemapster
-
SVG 和 Canvas 都可以映射非矩形路径并在将鼠标悬停在这些路径上时显示文本。由于 SVG 是一个成熟的 DOM 元素,您可以要求每个非矩形 SVG 元素在悬停时做出反应。 Canvas 允许您使用
context.isPointInPath对非矩形路径进行命中测试。如果您的设计需要不超出在悬停非矩形路径时显示文本,我会选择 SVG,因为它可以与用户进行开箱即用的交互。 -
@AlexWeinstein - 不...
-
@Stevangelista - 可能有点晚了,但这是一个很好的指针。谢谢!您对如何使用这些演示来回答这个问题有什么建议吗?
标签: javascript jquery html image canvas