13 / 13 / 0
Регистрация: 04.05.2009
Сообщений: 130
1

Входят ли координаты в треугольник.

09.06.2010, 18:51. Показов 1182. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Привет всем) Вот задачка есть. Есть треугольник и нужно узнать входят ли в этот треугольник координаты x и y.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.06.2010, 18:51
Ответы с готовыми решениями:

Олимпиадная задача. Проверка: входят координаты в треугольник или нет
Секретному агенту Джонни Бонни нужно проследить за вражеской базой, находящейся под землей. Поэтому...

Нарисовать треугольник Координаты x и y вводятся пользователем
3. Нарисовать треугольник. Координаты x и y вводятся пользователем. h=130 w=130 Добавлено через...

Определить образуют ли треугольник координаты трех точек
Ввести числа , которые являются значениями коор-динат трех точек на плоскости. Определить,...

Создать класс треугольник. Члены класса - координаты 3-х точек
Создать класс треугольник. Члены класса - координаты 3-х точек. Предусмотреть в классе методы...

6
407 / 359 / 82
Регистрация: 07.10.2009
Сообщений: 558
10.06.2010, 15:08 2
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
'Булева функция IsPointInABC возвращает True, если точка в треугольнике
'A, B, C - вершины треугольника, X - данная точка
Function IsPointInABC(ByVal A As Point, ByVal B As Point, ByVal C As Point, ByVal X As Point) As Boolean
    'Заданная точка соединяется отрезками с вершинами треугольника. 
    'Если площадь исходного треугольника равна сумме площадей образовавшихся 
    'трёх треугольников, то считается, что точка принадлежит треугольнику.
    If S(A, B, C) = S(A, B, X) + S(A, C, X) +S(C, B, X) Then
        Return True
    Else
        Return False
    End If
End Function
 
'S - вычисляет площадь треугольника по координатам вершин
Function S(ByVal p1 As Point, ByVal p2 As Point, ByVal p3 As Point) As Double
    S = Math.Abs(p1.X*(p2.Y-p3.Y)+p2.X*(p3.Y-p1.Y)+p3.X*(p1.Y-p2.Y))/2
End Function
По-моему, так!
0
13 / 13 / 0
Регистрация: 04.05.2009
Сообщений: 130
10.06.2010, 16:42  [ТС] 3
а куда это все пишется? о_О пишу в кнопку что-то не то)
0
407 / 359 / 82
Регистрация: 07.10.2009
Сообщений: 558
11.06.2010, 10:09 4
Цитата Сообщение от XudaH Посмотреть сообщение
а куда это все пишется? о_О пишу в кнопку что-то не то)
Если в кнопку, то, к примеру, так:
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
Sub Button1Click(ByVal sender As Object, ByVal e As EventArgs)
    'Вершины треугольника
    Dim A As Point = New Point(0, 0)
    Dim B As Point = New Point(0, 100)
    Dim C As Point = New Point(50, 50)
    'Данная точка
    Dim X As Point = New Point(10, 50)
    If IsPointInABC(A, B, C, X) Then MessageBox.Show("Точка находится в треугольнике")
End Sub
 
'Булева функция IsPointInABC возвращает True, если точка в треугольнике
'A, B, C - вершины треугольника, X - данная точка
Function IsPointInABC(ByVal A As Point, ByVal B As Point, ByVal C As Point, ByVal X As Point) As Boolean
    'Заданная точка соединяется отрезками с вершинами треугольника. 
    'Если площадь исходного треугольника равна сумме площадей образовавшихся 
    'трёх треугольников, то считается, что точка принадлежит треугольнику.
    If S(A, B, C) = S(A, B, X) + S(A, C, X) +S(C, B, X) Then
        Return True
    Else
        Return False
    End If
End Function
 
'S - вычисляет площадь треугольника по координатам вершин
Function S(ByVal p1 As Point, ByVal p2 As Point, ByVal p3 As Point) As Double
    S = Math.Abs(p1.X*(p2.Y-p3.Y)+p2.X*(p3.Y-p1.Y)+p3.X*(p1.Y-p2.Y))/2
End Function
2
13 / 13 / 0
Регистрация: 04.05.2009
Сообщений: 130
11.06.2010, 10:32  [ТС] 5
По этому коды что вы написали координаты всегда входят, думаю надо бы ещё текст бокс добавить и в него написать координаты самой точки, тогда точно узнаем входят ли или не входят)) Можно так реализовать?
0
407 / 359 / 82
Регистрация: 07.10.2009
Сообщений: 558
11.06.2010, 10:53 6
Цитата Сообщение от XudaH Посмотреть сообщение
По этому коды что вы написали координаты всегда входят, думаю надо бы ещё текст бокс добавить и в него написать координаты самой точки, тогда точно узнаем входят ли или не входят)) Можно так реализовать?
Конечно всегда, ведь точка X зафиксирована в коде.
А с textBox, строчку:
VB.NET
1
2
'Данная точка
Dim X As Point = New Point(10, 50)
заменить на:
VB.NET
1
2
'Данная точка
Dim X As Point = New Point(Convert.ToInt32(textBox1.Text), Convert.ToInt32(textBox2.Text))
где textBox1 - координата X,
textBox2 - координата Y.
2
13 / 13 / 0
Регистрация: 04.05.2009
Сообщений: 130
11.06.2010, 10:57  [ТС] 7
Вот теперь все хорошо) спасибо
0
11.06.2010, 10:57
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.06.2010, 10:57
Помогаю со студенческими работами здесь

Описать класс треугольник через координаты трех точек
class Triangle { // поля double Ax; double Ay; double...

Создать класс треугольник, поля класса - координаты 3х-точек
Создать класс треугольник, поля класса -координаты 3-х точек. Предусмотреть в классе методы...

Заданный треугольник в пространстве разбить на множество небольших и найти координаты их центров
Здравствуйте, вопрос в том, как можно пронумеровать вектора p(набор внутренних точек треугольника,...

Треугольник задан координатами вершин. Определить координаты и радиус описанной окружности
Помогите написать прогу! Треугольник задан координатами вершин. Определить координаты и радиус...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru