javascript - 在 A4 svg 绘图中绘制 1 像素笔画宽度图形

标签 javascript svg pixel

我目前正在尝试用svg画一些图形,纸张尺寸为A4,1个逻辑单元代表1mm。所以我将视口(viewport)设置为 297mmx210mm,viewbox 为 297x210。现在的问题是我画的图 stroke-width 不再是 1 个像素。例如,

<!DOCTYPE html>
<html>
<body>
<svg width="297mm" height="210mm" viewBox='0 0 297 210' style="border: 1px solid #cccccc;">
    <path stroke="black" fill="none" stroke-width='1' d='M 10 10 L 60 10'/>
    <path stroke="black" fill="none" stroke-width='1px' d='M 10 30 L 60 30'/>
    <path stroke="black" fill="none" d='M 10 50 L 60 50'/>
</svg>
</body>
</html>

即使我将其 stroke-width 设置为“1px”,上面的这 3 行也具有完全相同的线宽。在这种设置下是否仍然可以绘制 1 像素宽的线?

最佳答案

试试这个:

<path stroke="black" fill="none" stroke-width='1px' d='M 10 30 L 60 30' vector-effect="non-scaling-stroke"/>

vector-effect="non-scaling-stroke" 是 SVG 1.2 Tiny 的一项功能,它强制笔划宽度完全符合您的指定,无论缩放或单位转换是否有效。不幸的是,FF 和 Chrome(也许其他)支持它,但 IE(到目前为止)不支持。如果您可以接受,那么它就是解决您问题的最简单方法。

关于javascript - 在 A4 svg 绘图中绘制 1 像素笔画宽度图形,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17584348/

相关文章:

javascript - 使用 jQuery 在延迟后翻译(逐渐 - 使用动画) svg 元素

android - OpenGL ES单像素绘图android

javascript - 使用闭包基于两个参数进行排序

javascript - 用于带比例打印的 SVG

javascript - 在 IE9 中使用 HTML5 pushState()

php - SimpleXMLElement 在 600dpi 背景上返回 null

c - OpenCV中像素邻域差异的高效算法

java - 如何从 PNG 文件中读取像素?

构建 Sencha/ExtJS 5 项目时出现 java.lang.StackOverflowError

javascript - 将输入选择作为文本输出到元素