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