Построение треугольника на VB 6.0 (Чертёж)
Формулировка задачи:
Добрый день. Имеется проблема с написанием программы На (VB 6.0).
А именно: пользователь вводит размеры 3 сторон, и если треугольник построить можно то она рисует его по вводимым данным.
Говорят нужно использовать теорему косинусов. Но как это сделать я плохо представляю.
Буду благодарен за советы и код.
Решение задачи: «Построение треугольника на VB 6.0 (Чертёж)»
textual
Листинг программы
Private Type POINTAPI X As Long Y As Long End Type Dim cone(2) As POINTAPI, hBrush As Long, hRgn As Long, color As Long Dim a As Long, b As Long, c As Long Private Declare Function CreatePolygonRgn Lib "gdi32" (lpPoint As Any, _ ByVal nCount As Long, ByVal nPolyFillMode As Long) As Long Private Declare Function Polygon Lib "gdi32" (ByVal hDC As Long, _ lpPoint As Any, ByVal nCount As Long) As Long Private Declare Function FillRgn Lib "gdi32" (ByVal hDC As Long, _ ByVal hRgn As Long, ByVal hBrush As Long) As Long Private Declare Function CreateSolidBrush Lib "gdi32" _ (ByVal crColor As Long) As Long Private Sub Form_Load() Me.Height = 10000: Me.Width = 10000 End Sub Private Sub Form_Paint() a = St(0): b = St(1): c = St(2) If a > b Then b = St(0): a = St(1) If b > c Then c = b: b = St(2) If a + b < c Then MsgBox "косяк" Else Me.Cls Me.ScaleMode = vbPixels k = IIf(Form1.ScaleWidth < Form1.ScaleHeight, _ Form1.ScaleWidth, Form1.ScaleHeight) * 0.8 / c cone(0).X = Form1.ScaleWidth * 0.1 cone(0).Y = Form1.ScaleHeight * 0.9 cone(1).X = cone(0).X + k * c cone(1).Y = cone(0).Y d = (a ^ 2 + c ^ 2 - b ^ 2) / 2 / c h = (a ^ 2 - d ^ 2) ^ 0.5 cone(2).X = cone(0).X + Int(k * d) cone(2).Y = cone(0).Y - Int(k * h) color = IIf(Abs(a ^ 2 + b ^ 2 - c ^ 2) < 10 ^ -6, vbBlue, vbGreen) hBrush = CreateSolidBrush(color) hRgn = CreatePolygonRgn(cone(0), 3, 1) FillRgn Me.hDC, hRgn, hBrush Polygon Me.hDC, cone(0), 3 End If End Sub Private Sub Комманда1_Click() Form_Paint End Sub
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д