![]() |
1
3
这可能不是很有帮助,但是我们在其他项目中完成这类工作的方式是实现一个自定义的“笔”,它接受要绘制的线,计算实际的破折号,然后用“真实”的笔将每个破折号绘制为一条单独的线。如果你要做这样的事情,那么你可以在每一个破折号上应用一个“笔”级的起始值和/或结束值。 自定义“笔”必须接受短划线/间隙长度的数组或序列(或者可能是标准笔样式的枚举,这些标准笔样式在内部解释为特定的短划线/间隙长度)。 许多年前,我们使用了一个基于GDI的绘图系统,在该系统中,我们必须支持比GDI支持的内置线条样式更多的线条样式。 这是一个有趣的练习,但它也可能比它的价值更麻烦,除非你真的需要画出你所描述的破折号。 [编辑] 下面是一些示例代码,说明如果您愿意,可以如何执行此操作。 首先是图形对象的扩展方法。它需要一支笔、短划线长度、间隙长度、起点和终点。它沿直线p1->p2插入,绘制“短划线”长度段,然后跳过“间隙”长度段。输入的笔应该是带箭头端盖的实心笔(以达到您要求的效果)。 代码相当粗糙,但行为或多或少是这样的: 如果输入行短于总破折号+间隙长度,则使用输入笔绘制该行。 如果输入行长于总短划线+间隙长度,则绘制“短划线”长度线,直到该行的“余数”小于短划线+间隙长度,此时,余数将与输入笔一样绘制。 如果要实现路径绘制,则必须围绕中间顶点进行插值(除非您希望降低成本,并且只需为每个分段单独计算破折号)。
您可以这样称呼它:
我并不认为代码很好(或者说一定很好;-),但是如果你真的对绘制有向线感兴趣的话,它应该给你一个很好的起点。 祝你好运! |
![]() |
2
2
Hmm.。也许我遗漏了一些东西,但是当我使用这个(几乎)完全相同的代码时,我得到一个只有一点的定向箭头。
这是我的代码:
|
![]() |
user1424739 · 如何获得子地块的绘图区域大小? 3 年前 |
![]() |
Nor-s · 如何使用ASIMP正确加载模型? 3 年前 |
![]() |
Makogan · 3D纹理大小影响程序输出,不会引发错误 7 年前 |
![]() |
Karsten W. · 底部R中的旋转箭头 7 年前 |
|
168grani · Matplotlib图形的线条平滑 7 年前 |