Проверить, образуют ли 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

Оцени полезность:

5   голосов , оценка 4 из 5
Похожие ответы