Толстая линия - это многоугольник. (Давайте пока забудем о сглаживании)
картинка http://img39.imageshack.us/img39/863/linezi.png
start = начало строки = vector (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 = точки многоугольника:
p0 = start + perpoffset - diroffset
p1 = начало - perpoffset - diroffset
p2 = end + perpoffset + diroffset
p3 = конец - perpoffset + diroffset
P.S. Ты последний человек, которому я собираюсь объяснить это.
Подобные вещи следует понимать на интуитивном уровне.