Проверить, образуют ли 4 точки (x, y) выпуклый четыреухгольник - VB

Узнай цену своей работы

Формулировка задачи:

Если точки в любом порядке. Помогите, пожалуйста(( Я знаю как проверить если точки упорядочены, но если неупорядочены? Делать все 24 перестановки, проверять каждую?

Решение задачи: «Проверить, образуют ли 4 точки (x, y) выпуклый четыреухгольник»

textual
Листинг программы
  1. Private Type Coor
  2.    X As Double
  3.    Y As Double
  4. End Type
  5. Dim p(3) As Coor
  6.  
  7. Private Sub Form_Click()
  8. Cls
  9. a = Array(Array(0, 1, 2, 3), Array(0, 1, 3, 2), Array(0, 2, 1, 3))
  10. For i = 0 To 3
  11.     p(i).X = Int(11 * Rnd)
  12.     p(i).Y = Int(11 * Rnd)
  13.     PSet (p(i).X, p(i).Y)
  14.     Print i
  15. Next
  16. For j = 0 To 2
  17.     s = abc(a(j)(0), a(j)(1), a(j)(2))
  18.     If s = 0 Then Caption = "Никакой": Exit Sub
  19.     For i = 0 To 3
  20.         t = abc(a(j)((1 + i) Mod 4), a(j)((2 + i) Mod 4), a(j)((3 + i) Mod 4))
  21.         If t = 0 Then Caption = "Никакой": Exit Sub
  22.         If t <> s Then Exit For
  23.     Next
  24.     If i = 4 Then Caption = "Выпуклый": Exit Sub
  25. Next
  26. Caption = "ВПуклый"
  27. End Sub
  28.  
  29. Function abc(a, b, c)
  30.     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))
  31. End Function
  32.  
  33. Private Sub Form_Load()
  34. AutoRedraw = True
  35. Scale (-1, 11)-(11, -1)
  36. DrawWidth = 2
  37. Randomize
  38. End Sub

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

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

5   голосов , оценка 4 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы