quickstart for the diagrams
package говорит мне, чтобы скомпилировать и запустить следующую программу:Haskell диаграммы SVG обрезается
{-# LANGUAGE NoMonomorphismRestriction #-}
import Diagrams.Prelude
import Diagrams.Backend.SVG.CmdLine
main = mainWith (circle 1 :: Diagram B)
Это их утверждает:
Если теперь просмотреть circle.svg в вашем любимом веб-браузер, должен быть указан
Однако это не так. То, что я на самом деле вижу это:
Примечания вырезанных краев диаграммы. Это потому, что линия имеет ширину, но изображение обрезается с предположением о том, что линия не имеет ширины.
Вот вывод SVG:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg
xmlns="http://www.w3.org/2000/svg"
height="200.0000" stroke-opacity="1"
viewBox="0 0 200 200"
font-size="1"
width="200.0000"
xmlns:xlink="http://www.w3.org/1999/xlink"
stroke="rgb(0,0,0)"
version="1.1">
<defs></defs>
<g
stroke-linejoin="miter"
stroke-opacity="1.0"
fill-opacity="0.0"
stroke="rgb(0,0,0)"
stroke-width="0.8"
fill="rgb(0,0,0)"
stroke-linecap="butt"
stroke-miterlimit="10.0">
<path
d="M 200.0000,100.0000 c 0.0000,-55.2285 -44.7715,-100.0000 -100.0000 -100.0000c -55.2285,-0.0000 -100.0000,44.7715 -100.0000 100.0000c -0.0000,55.2285 44.7715,100.0000 100.0000 100.0000c 55.2285,0.0000 100.0000,-44.7715 100.0000 -100.0000Z"
/>
</g>
</svg>
Как я могу сказать, diagrams
взять ширину линии во внимание при определении огибающей диаграммы?
Невозможно воспроизвести. SVG, конечно, не обрезается, в худшем случае браузер обрабатывает вывод, который он отображает из него. И 'frame' _does_ добавляет маржу, так что даже этого не произойдет (по крайней мере, в последних версиях, я попробовал это с помощью' diagrams-1.3.0.1'). – leftaroundabout