【发布时间】:2014-10-20 15:23:19
【问题描述】:
我想知道给定点是在文本形状的内部还是外部。正如您将在下面提供的示例中注意到的那样,hitTest 将在该点位于TextItem 的边界内时立即返回true,而不仅仅是当该点位于字符本身之内时。 (当您将鼠标指针放在# 的中间时,您最能体验到这种行为)
Sample: Hit-testing against TextItem
我还尝试根据路径绘制字符(正如Raphaël 在他们的font samples 中所做的那样)以使用路径本身进行命中测试,但偶然发现了一些非常奇怪的行为,其中(某些)字符未正确绘制. (如果将路径定义复制到Inkscape之类的矢量图像软件中,则可以正确绘制文本形状)
找出给定点是在文本形状内部还是外部最有希望的方法是什么?
【问题讨论】:
-
我猜可能路径显示错误,因为我认为画布还没有正确支持 SVG 中的 fillRule。不过我可能是错的。你需要使用画布吗?听起来 SVG 可能更适合(或两者都适合)?
-
我还用
Raphaël中的exact 相同的cufon 字体和按预期呈现的字体做了一个示例。一般来说,我愿意使用其他方法,不幸的是,使用 svg 进行命中测试的结果完全相同:jsfiddle.net/rponudic/6st4Lodc -
针对路径的命中测试适用于 SVG:jsfiddle.net/rponudic/fa8v2k6u - 这将是一个可能的解决方案,尽管这是一种解决方法......
-
基本上我想知道你是否可以用 SVG 覆盖 Canvas 顶部的文本以获取需要精细控制路径的位。
-
错过了之前的评论。在 Raph/svg 中,不确定为什么要添加一个框并将鼠标移动放在上面。为什么不只在路径上使用鼠标移动?
标签: html5-canvas raphael paperjs