Проверить, образуют ли 4 точки (x, y) выпуклый четыреухгольник - VB
Формулировка задачи:
Если точки в любом порядке. Помогите, пожалуйста((
Я знаю как проверить если точки упорядочены, но если неупорядочены? Делать все 24 перестановки, проверять каждую?
Решение задачи: «Проверить, образуют ли 4 точки (x, y) выпуклый четыреухгольник»
textual
Листинг программы
- Private Type Coor
- X As Double
- Y As Double
- End Type
- Dim p(3) As Coor
- Private Sub Form_Click()
- Cls
- a = Array(Array(0, 1, 2, 3), Array(0, 1, 3, 2), Array(0, 2, 1, 3))
- For i = 0 To 3
- p(i).X = Int(11 * Rnd)
- p(i).Y = Int(11 * Rnd)
- PSet (p(i).X, p(i).Y)
- Print i
- Next
- For j = 0 To 2
- s = abc(a(j)(0), a(j)(1), a(j)(2))
- If s = 0 Then Caption = "Никакой": Exit Sub
- For i = 0 To 3
- t = abc(a(j)((1 + i) Mod 4), a(j)((2 + i) Mod 4), a(j)((3 + i) Mod 4))
- If t = 0 Then Caption = "Никакой": Exit Sub
- If t <> s Then Exit For
- Next
- If i = 4 Then Caption = "Выпуклый": Exit Sub
- Next
- Caption = "ВПуклый"
- End Sub
- Function abc(a, b, c)
- abc = Sgn((p(a).X - p(c).X) * (p(b).Y - p(c).Y) - (p(b).X - p(c).X) * (p(a).Y - p(c).Y))
- End Function
- Private Sub Form_Load()
- AutoRedraw = True
- Scale (-1, 11)-(11, -1)
- DrawWidth = 2
- Randomize
- End Sub
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д