Определить, является ли точка внутренней точкой треугольника - VB

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

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

Всем привет! Кто решал такую, помогите))))) Даны координаты трех вершин треуголника АВС и даны координаты четвертой точки D. Определить, является ли эта точка внутренней точкой треугольника.

Решение задачи: «Определить, является ли точка внутренней точкой треугольника»

textual
Листинг программы
  1. 'знак площади треугольника ABC, по которому можно определить,
  2. 'по или против часовой стрелки идёт обход A->B->C
  3. Function SgnS3(ax#, ay#, bx#, by#, cx#, cy#) As Integer
  4. SgnS3 = Sgn((ax - cx) * (by - cy) - (bx - cx) * (ay - cy))
  5. End Function
  6.  
  7. 'принадлежит ли точка O треугольнику ABC?
  8. Function OinABC(ax#, ay#, bx#, by#, cx#, cy#, ox#, oy#) As Boolean
  9. Dim s1 As Integer, s2 As Integer, s3 As Integer
  10. s1 = SgnS3(ax, ay, bx, by, ox, oy)
  11. s2 = SgnS3(bx, by, cx, cy, ox, oy)
  12. s3 = SgnS3(cx, cy, ax, ay, ox, oy)
  13. OinABC = s1 * s2 >= 0 And s2 * s3 >= 0 And s3 * s1 >= 0
  14. End Function
  15.  
  16. Sub main()
  17. Dim ax#, ay#, bx#, by#, cx#, cy#, ox#, oy#
  18. ax = 1 'val(inputbox("Ax=")) или val(text1) и т.д. для всех
  19. ay = 1
  20. bx = 3
  21. by = 1
  22. cx = 2
  23. cy = 3
  24. ox = 2
  25. oy = 2
  26. If OinABC(ax, ay, bx, by, cx, cy, ox, oy) Then
  27.   MsgBox "Принадлежит"
  28. Else
  29.   MsgBox "Не принадлежит"
  30. End If
  31. End Sub

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


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

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

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

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

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

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