Рисование границы фигуры полностью внутри фигуры в PDF - PullRequest
0 голосов
/ 24 января 2020

Я использую Path Construction in PDF, чтобы нарисовать фигуру, скажем, прямоугольник. Например:

0 0 m 0 1 l 1 1 l 1 0 l 0 0 l B

Но теперь линия соединяет (0,0) и ( 0,1) имеет (0,0) и (0,1) в центре. Поэтому граница «покидает» прямоугольник на половину ширины линии.

Есть ли параметр, чтобы граница была нарисована полностью внутри прямоугольника?

Ответы [ 2 ]

1 голос
/ 25 января 2020

Это обычное поведение операции рисования линии.

Толщина линии равномерно распределена по обеим сторонам линии. Таким образом, если у вас есть 10pt-линия от (0,0) до (10,0) и вы используете стиль линии торцевой крышки, у вас будет заполненная область прямоугольника angular с углами (0, -5), (10 , -5), (10,5), (0,5).

Посмотрите этот файл PDF - вы можете увидеть этот эффект во второй строке, втором столбце. Внутренние белые и внешние черные линии имеют одинаковую начальную и конечную точки.

Поэтому, если вы хотите, чтобы все находилось внутри этого прямоугольника, либо используйте путь отсечения, как сказал mkl, либо рассчитайте необходимые конечные точки, взяв ширина линии и стиль cap / join учитывают.

0 голосов
/ 25 января 2020

Как уже упоминалось в комментарии, с использованием пути клипа размером этого прямоугольника является опцией.

Поскольку ваш путь состоит только из рассматриваемого прямоугольника, вы можете сделать это очень просто, просто добавьте оператор обтравочного контура W перед оператором рисования контура B :

0 0 m 0 1 l 1 1 l 1 0 l 0 0 l W B

Если вы не хотите сохранять путь обрезки, заключите все это в состояние сохранения / восстановления

q
0 0 m 0 1 l 1 1 l 1 0 l 0 0 l W B
Q
...