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

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

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

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

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

textual
Листинг программы
'знак площади треугольника ABC, по которому можно определить,
'по или против часовой стрелки идёт обход A->B->C
Function SgnS3(ax#, ay#, bx#, by#, cx#, cy#) As Integer
SgnS3 = Sgn((ax - cx) * (by - cy) - (bx - cx) * (ay - cy))
End Function
 
'принадлежит ли точка O треугольнику ABC?
Function OinABC(ax#, ay#, bx#, by#, cx#, cy#, ox#, oy#) As Boolean
Dim s1 As Integer, s2 As Integer, s3 As Integer
s1 = SgnS3(ax, ay, bx, by, ox, oy)
s2 = SgnS3(bx, by, cx, cy, ox, oy)
s3 = SgnS3(cx, cy, ax, ay, ox, oy)
OinABC = s1 * s2 >= 0 And s2 * s3 >= 0 And s3 * s1 >= 0
End Function
 
Sub main()
Dim ax#, ay#, bx#, by#, cx#, cy#, ox#, oy#
ax = 1 'val(inputbox("Ax=")) или val(text1) и т.д. для всех
ay = 1
bx = 3
by = 1
cx = 2
cy = 3
ox = 2
oy = 2
If OinABC(ax, ay, bx, by, cx, cy, ox, oy) Then
  MsgBox "Принадлежит"
Else
  MsgBox "Не принадлежит"
End If
End Sub

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


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

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

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