Проверить, образуют ли 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
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д