Hello Sander,
VTP1! To say the truth I never used them. About what you said:
1) SBuilder was in fact programmed in VB6. Now I switched to VB2005 and I had to rewrite most of the graphics.
2) There is no problem for me in adding the facility to compile for CFS. The only problem is that I "wrote SB for myself" and I have few comments and, may be, I am the only person that can read the source code. Even for the purpose of helping you with the geometry, I had to look several times to what I have writen to understand it. So, we can keep in touch regarding to adding such funcionality to SB206 (VB6!). I can send you relevant parts of the source code if you think it is useful.
3) I am thinking in converting "lines with width" to polygons in SBuilder for FSX. The reason is that vectored lines with adjustable width are no longer supported. In my implementation (that I will start soon) I will have to check within the code the turns to the right and the turns to the left. When a new segment turns to the right I will use points 3 and 0 (see the drawing) on the left side and I have to solve what is upsetting you (eg to find a kind of intersection near points 0 and 1).
So I will try to explain the algorithm in my previous post. Say that a line starts with points P1, followed by P2, P3 ...
I start to get the vector P1_to_P2. This is vector U (coordinates UX and UY). Note that I normalize U so that it has a lenght of 1. Then I get a vector D with coordinates DX and DY. This vector is aligned with the segment P1 to P2 but the size is now equal to 1/2 of the width of the line.
The part:
PTS(0).X = PX0 - DY
PTS(0).Y = PY0 + DX
PTS(1).X = PX0 + DY
PTS(1).Y = PY0 - DX
is to find the points B and A (or PTS(0) and PTS(1)) as if I had created 2 vectors, DR and DL, from vector D.
May be you now can fully understand the code (if you have not already done so!)
Kind Regards,
Luis