- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我编写了一个图表编辑器,并绘制了一些曲线链接,这些链接非常适用于二次贝塞尔曲线段(见图):
我搜索绘制“尖峰”弯曲链接的最佳方法(如果可能的话)。大致像这样(蓝色):
我不知道从哪里开始,我读了一些关于画笔或“如何绘制弯曲的文本”的文章,但它似乎不是我需要的......
感谢您的帮助或建议! :)
只是为了完成一些评论,贝塞尔曲线是用 quadrametricBezier 类从 3 个点制作的。谢谢大家!
最佳答案
我认为 WPF 中没有内置的方法可以做到这一点。您必须自己计算坐标并自己绘制线条(例如使用 DrawingVisual)。
要计算坐标,您必须:
具有 4 个控制点的贝塞尔曲线具有以下公式:
curve(t) = t^3 p1 + 3 t^2 (1-t) p2 + 3 t (1-t)^2 p3 + (1-t)^3 p4
d/dt curve(t) = 3 p3 - 3 p4 + 6 p2 t - 12 p3 t + 6 p4 t + 3 p1 t^2 - 9 p2 t^2 + 9 p3 t^2 - 3 p4 t^2
使用这些公式,您可以计算曲线上的点及其切线方向。将切线方向旋转 90°(即交换 X/Y 并更改 Y 的符号)给出法线方向。
但是,这些点不是等距的:
因此,如果您直接使用这些点,您会得到一条曲线,其中一些“尖峰”比其他“尖峰”短:
您现在有一个沿曲线的点列表。您可以计算每个点与下一个点之间的欧氏距离。将所有这些距离相加得到曲线的总长度。
假设您想要(大约)10 像素宽的尖峰。然后你需要 n=round(TotalLength/10)
点数。这些点位于 s(i) = TotalLength/n * i
。
所以如果你想,例如找到第 3 个等距点的 t
的值,您将计算 s(3) = TotalLength/n * 3
。然后,您将遍历采样点集,边走边对距离求和,直到到达沿曲线的总距离 > s(3) 的点。现在您知道了您要查找的点之前和之后的点,您可以使用三的法则来计算两者之间的 t。
现在您有一组沿曲线等距的点:
这是最简单的部分:在每个等距点处,计算法线(使用上面的导数公式)。将该法线除以其长度以获得法线单位。然后添加到每个偶数点 +d * UnitNormal
和每个奇数点 -d * UnitNormal
,其中 d
是“深度”尖峰,即尖端到曲线的距离。
关于wpf - 遵循弯曲路径的多段线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12028690/
我正在使用我的简单 PHP 验证码算法 ( http://www.source.ofitall.com/devel/captcha.php ),我一直在努力尝试调整它以使其更具吸引力和更易于阅读,谷歌
我正在 android 中实现一个 ListView ,它看起来就像这样并滚动 我一直在通过在我的适配器的 getView 中设置膨胀行的布局参数来做到这一点,但由此引发的问题是 ListView 变
我正在尝试使用 flex 和 bison 创建一个计算器,它可以进行一组操作(结果分配给变量)。计算器使用存储器来存储这些变量。当我通过终端(标准输入键盘)进行此计算时,一切正常。但是,当我尝试使用文
我的Flex应用程序中有数据网格,我使用Arraycollection绑定(bind)数据网格(使用remoteobject方法调用从java类获取数据)。现在我正在数据网格中执行添加/编辑/删除,我
是否可以制作弯曲或拱形形状的矩形。这是我的 jsfiddle https://jsfiddle.net/dibyendu/y8pthz2x/ 。我想使用 d3 使雷达图轴上的这些矩形成为弧形/曲线 最
我有一张代表某个区域海拔的图像。但是制造它的无人机不一定走直线(尽管图像总是矩形的)。我还有每 20 厘米生成的 gps 坐标。 如何“弯曲”这个矩形图像(曲线/马赛克),使其代表无人机实际经过的弯曲
我经历了How to curve the top of a UIView Controller in Swift 并发表看法。它附在下面。我想从我的 View 中删除该背景色。我在 Storyboar
任何人都可以帮助弯曲 View 以达到以下效果。我正在使用自定义 View 组,我想操纵 Canvas 来实现以下效果,谁能帮帮我。 谢谢 最佳答案 你需要知道: Camera Matrix 这是一个
我尝试绘制一些 3D 正方形(在 iPhone 上使用 OpenGL)并让它们旋转,现在它们看起来像一个球体。 http://i618.photobucket.com/albums/tt265/Loy
我想创建一个 div,它是一个按钮,它包含一个国旗的图片和一个国家的 abv,我已经将一些代码放入我想要的内容中,但这不是 Bootstrap 的方式,我'我正在努力解决这个问题,以及如何使用 boo
现在我正在用一系列 View 填充 UIScrollView。需要扭曲 View 以使 UIScrollView 看起来像旋转木马。换句话说,当用户滚动时,它需要像一个圆圈。我以前从未做过类似的事情,
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
我是一名优秀的程序员,十分优秀!