如何在边界框内绘制线条中考虑线宽

时间:2010-11-02 01:58:28

标签: algorithm grid drawing

我在整个边界框内绘制了一组均匀分布的水平线。

我遇到的问题是线条(大于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 个答案:

答案 0 :(得分:1)

你的问题有点不清楚,但我认为这可能会有所帮助:

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