Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: Задачка Добавлено: 06.11.05 16:53  

Автор вопроса:  yxaxa
Не могу додуматься как сделать задачку. Тут больше на составление условия, чем на программирование. Значить юзер вводит координаты вершин треугольника (х,у). И вводит координаты точки. Нужно определить лежит точка в треугольнике или нет. Чет ниче путного не придумал.

Ответить

  Ответы Всего ответов: 12  

Номер ответа: 1
Автор ответа:
 ISpy



Разработчик Offline Client

Вопросов: 47
Ответов: 621
 Web-сайт: intermult.boom.ru
 Профиль | | #1
Добавлено: 06.11.05 18:53
Разбивай с помощью этой точки треугольник на 3 треугольника и ищи их площади, если сумма всех трех получившихся площадей равна площади данного треугольника - точка лежит в нем, если не равна - не лежит.
Тут бы нарисовать, чтоб понятней было:
     +
    /A\
   / A \
  / M \
 / A A \
+A_______A+

Я конечно не художник :))
В общем так, у тебя есть координаты вершин (вершина - это +), и координата точки (точка - это М). Тебе надо найти площадь всего треугольника, и сравнить ее с суммой площадей треугольников полученных разбиением основного треугольника точкой М.

Ответить

Номер ответа: 2
Автор ответа:
 ISpy



Разработчик Offline Client

Вопросов: 47
Ответов: 621
 Web-сайт: intermult.boom.ru
 Профиль | | #2
Добавлено: 06.11.05 18:54
Мда, весь мой рисунок съехал :(( Зря я старался :(

Ответить

Номер ответа: 3
Автор ответа:
 ViktorZ



ICQ: 271202919 

Вопросов: 56
Ответов: 837
 Профиль | | #3 Добавлено: 06.11.05 19:01
Да помоему все понятно и без него.

Ответить

Номер ответа: 4
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #4
Добавлено: 06.11.05 22:43
Еще вариант - посчитать сумму углов, под которыми видны стороны треугольника из этой точки. Если 360 - внутри

Ответить

Номер ответа: 5
Автор ответа:
 HACKER


 

Разработчик Offline Client

Вопросов: 236
Ответов: 8362
 Профиль | | #5 Добавлено: 07.11.05 18:39
algolist.manual.ru

Ответить

Номер ответа: 6
Автор ответа:
 GSerg



Вопросов: 0
Ответов: 1876


 Профиль | | #6 Добавлено: 07.11.05 18:56
CreateRgn
PtInRegion
DeleteObject

Ответить

Номер ответа: 7
Автор ответа:
 ISpy



Разработчик Offline Client

Вопросов: 47
Ответов: 621
 Web-сайт: intermult.boom.ru
 Профиль | | #7
Добавлено: 08.11.05 11:09
Да, в догонку:
Площадь треугольников считай так:
fabs((x2-x1)*(y3-y1)-(y2-y1)*(x3-x1))/2

fabs - это абсолютная величина (модуль)
Т.е. берем модуль от выражения в скобках и делим на два.

Вообще-то это преобразованная формула для вычисления определителя для матриц третьего порядка. Наш определитель выглядит так:
|x1 y1 1|
|x2 y2 1|
|x3 y3 1|
P.s. это так, для общего развития :))

Ответить

Номер ответа: 8
Автор ответа:
 Morpheus



Вопросов: 224
Ответов: 3777
 Web-сайт: xury.zx6.ru
 Профиль | | #8
Добавлено: 08.11.05 16:00
а я думал по офрмуле герона считать площадь по известным сторонам

Ответить

Номер ответа: 9
Автор ответа:
 ISpy



Разработчик Offline Client

Вопросов: 47
Ответов: 621
 Web-сайт: intermult.boom.ru
 Профиль | | #9
Добавлено: 08.11.05 19:06
Так по-моему легче, чем сначала искать полупериметр, потом считать формулу и вычислять корень :)
Хотя когда-как, я просто написал удобный, как мне кажется, вариант вычисления площади.

Ответить

Номер ответа: 10
Автор ответа:
 AgentFire



ICQ: 192496851 

Вопросов: 75
Ответов: 3178
 Профиль | | #10 Добавлено: 08.11.05 21:23
помоему sharp предложил наиболее простой и приемлимый вариант ;)

Ответить

Номер ответа: 11
Автор ответа:
 ISpy



Разработчик Offline Client

Вопросов: 47
Ответов: 621
 Web-сайт: intermult.boom.ru
 Профиль | | #11
Добавлено: 12.11.05 17:35
Каждому свое.

Ответить

Номер ответа: 12
Автор ответа:
 AgentFire



ICQ: 192496851 

Вопросов: 75
Ответов: 3178
 Профиль | | #12 Добавлено: 12.11.05 17:49
но желательно попроще ;)
изобретатели млин ;) велосипеда ;)))







;)

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам