как учитывать ширину линии при рисовании линий внутри ограничительной рамки - PullRequest
0 голосов
/ 02 ноября 2010

Я рисую набор равномерно расположенных горизонтальных линий в пределах всей ограничительной рамки.

Проблема, с которой я сталкиваюсь, состоит в том, что линии (когда они больше 1px) отрисовываются за верхним и нижним краямииз моих границ.Если быть точным, половина с каждой стороны сверху и снизу отсутствует.

Вот некоторый псевдокод, который пытается исправить это, но он не работает.Это должно описывать то, что я пытаюсь сделать:

var halfline = linewidth / 2.;
var maxheight = boxsize.height - halfline;
var minheight = halfline;

//draw h lines    
for(i = 0; i < maxlines; i++)
{
    var xloc = 0;
    var xfrac = i / maxlines - 1;
    var yloc = (xfrac * boxsize.height) + minheight;

    move_to(xloc, yloc);
    line_to(boxsize.width, yloc);
}

Пожалуйста, имейте в виду, что lang здесь не важен, просто идея о том, как сместить и масштабировать линии (чтонарисованы внутри цикла for).

Спасибо за любые подсказки ... Можно предположить следующее:

  1. ширина линии в пикселях

  2. система координат основана на пикселях, от (0,0) до (n, n)

1 Ответ

1 голос
/ 02 ноября 2010

Ваш вопрос немного неясен, но я думаю, что это может помочь:

var availablespace = boxsize.height - linewidth;
...
var yloc = (xfrac * availablespace) + minheight;
...