绘制N宽线?

jma*_*erx 2 c c++ algorithm drawing

给定一系列点,我怎样才能计算出距离5个像素的那条线的矢量?例如:鉴于:

   \
    \
     \
Run Code Online (Sandbox Code Playgroud)

我怎么能找到矢量

   \  \
    \  \
     \  \
Run Code Online (Sandbox Code Playgroud)

右边的那些.

我试图找出像Flash这样的程序如何制作厚实的轮廓.

谢谢

Sig*_*erm 8

粗线是多边形.(现在让我们忘记抗锯齿)

图片http://img39.imageshack.us/img39/863/linezi.png

开始=行开始=矢量(X1,Y1)
端=行结束=矢量(X2,Y2)
DIR =线方向=结束-开始=矢量(X2-X1,Y2-Y1)
NDIR =归一化的方向= DIR*1.0 /长度(DIR)
PERP =垂直于方向矢量=(dir.x,-dir.y)
nperp =归一化的正交= PERP*1.0 /长度(PERP)

perpoffset = nperp*w*0.5
diroffset = ndir*w*0.5

(您可以轻松地删除一个标准化并通过从另一个垂直方向计算其中一个偏移)

P0,P1,P2,P3 =多边形点:
P 0 =开始+ perpoffset - diroffset
P1 =开始- perpoffset - diroffset
P2 =端+ perpoffset + diroffset
P3 =端- perpoffset + diroffset

PS你是我要解释这个东西的最后一个人.应该直观地理解这些事情.