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