haskell - 如何使线像圆一样粗?
问题描述
我想制作一条宽度等于圆直径的圆线。经过多次试验和错误,这似乎产生了想要的输出。
import Diagrams.Prelude
import Diagrams.Backend.Cairo.CmdLine
main = mainWith example
path = fromVertices [p2 (0,0), p2 (3,0)] # lw 80
example :: Diagram B
example = atPoints [p2 (0,0)] n
<> (path # lineCap LineCapRound . lineJoin LineJoinRound)
<> atPoints [p2 (3,0)] n
<> square 10 # lw none # fc white
where
n =[circle 1 # fc green # lw none]
不过感觉不对。我希望lw 2
对应,circle 1
因为 2 是半径的两倍,但肯定不是lw 80
?!
为什么它适用于 80?假设我错过了一些东西,如何制作一条像圆一样宽的圆线?
解决方案
你想要lwL
,它代表“线宽,本地”,并且使用与长度相同的线宽单位。
手册中有更多详细信息,以下是相关摘录:
本地单位是最容易解释的。局部单位中的值在局部向量空间的上下文中进行解释,就像大多数其他长度测量一样(例如圆形和方形等函数的参数)。例如,square 1 # lwL 0.2 指定了一个正方形,该正方形由其边长的五分之一宽的线绘制而成——并且即使它被缩放也将始终如此:线宽与正方形一起缩放。(lwL 中的 L 代表“本地”。)
推荐阅读
- asp.net-core - 2FA 恢复代码在 .NET 3.0 中如何工作?
- python - 求和此 python 从连接到 Raspberry Pi 的模数转换器产生的值的总和?
- xml - 在启动时通过 VB.Net 从 XML 文件写入和读取数据
- javascript - 如何在 Angular 和 Firebase 中使用 Gmail 进行电子邮件身份验证?
- c++ - C++ lambda - 捕获静态成员变量
- r - 仅在满足多个条件时才将不同列的值匹配到行
- google-bigquery - 如何用计数部分过滤子集字符串?
- python - 在 Python 中查找具有匹配 XML 标记的任何后代的兄弟姐妹
- wordpress - 有没有办法将多个静态 IP 分配给 Amazon Lightsail 实例?
- android - gridlayout 中的第一项有什么问题?