i change the brush:
Code:
Dim oldbrush As Long
oldbrush = GetDCBrushColor(Me.hDC)
SetDCBrushColor Me.hDC, RGB(255, 0, 0)
i call the Polygon() function by double a double vectors(draw 1 line at a time)...
Code:
Private Sub DrawLine(Origin As Position3D, Destiny As Position3D, Rotation As Angle3D, WorldSize As Size3D)
Dim Points(2) As POINTAPI
Dim NewPosition3D(2) As Position3D
Dim RotatedPosition As Position3D
With Player1.Position
FillPosition3D RotatedPosition, .x, .Y, .Z 'rotate using camera Position
End With
'Line:
'Calculate Vector1:
FillPosition3D NewPosition3D(0), Origin.x, Origin.Y, Origin.Z
NewPosition3D(0) = Rotate(NewPosition3D(0), Rotation, RotatedPosition)
'Calculate Vector2:
FillPosition3D NewPosition3D(1), Destiny.x, Destiny.Y, Destiny.Z
NewPosition3D(1) = Rotate(NewPosition3D(1), Rotation, RotatedPosition)
'Testing If Vector0 and Vector1 are inside of camera:
If (IsOnCamera(NewPosition3D(0), camera1.Position, camera1.size) = False And _
IsOnCamera(NewPosition3D(1), camera1.Position, camera1.size) = False) Then
Exit Sub
End If
If (IsOnCamera(NewPosition3D(0), camera1.Position, camera1.size) = False) Then
NewPosition3D(0) = GetInCamVector(NewPosition3D(0), NewPosition3D(1))
End If
If (IsOnCamera(NewPosition3D(1), camera1.Position, camera1.size) = False) Then
NewPosition3D(1) = GetInCamVector(NewPosition3D(1), NewPosition3D(0))
End If
'Convert the Vector1 to 2D:
Points(0) = ConvertPositon3DTo2D(NewPosition3D(0), camera1.size)
'Convert the Vector2 to 2D:
Points(1) = ConvertPositon3DTo2D(NewPosition3D(1), camera1.size)
Polygon Me.hDC, Points(0), 2
End Sub
Code:
DrawLine position1, position2, Rotation, WorldSize
SetDCBrushColor Me.hDC, oldbrush
the line is drawed red.. on a pen way...
but why the brush isn't used?
yes if i call the Polygon() for draw all the 4 lines at once, the brush is used... but why not on these way? i selected the brush