Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > Общие вопросы .NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.06.2010, 15:00   #1
pro100saniok
Пользователь
 
Регистрация: 20.06.2010
Сообщений: 33
Вопрос С#. принадлежит ли точка треугольнику

Дана точка А(х, у). Определить, принадлежит ли она треугольнику с вершинами в точках (х1, у1), (х2, у2), (x3, y3).

помогите решить очень надо ))
pro100saniok вне форума Ответить с цитированием
Старый 20.06.2010, 15:19   #2
Cpluser
Форумчанин
 
Аватар для Cpluser
 
Регистрация: 16.02.2009
Сообщений: 555
По умолчанию

Вот посмотри
http://www.cyberforum.ru/algorithms/thread144722.html
Cpluser вне форума Ответить с цитированием
Старый 20.06.2010, 15:48   #3
pro100saniok
Пользователь
 
Регистрация: 20.06.2010
Сообщений: 33
Сообщение

Cpluser спасибо за алгоритм, но мне надо код задачи на С# ?
pro100saniok вне форума Ответить с цитированием
Старый 20.06.2010, 16:21   #4
Cpluser
Форумчанин
 
Аватар для Cpluser
 
Регистрация: 16.02.2009
Сообщений: 555
По умолчанию

Могу за плату сделать или давайте ваши наработки!
Cpluser вне форума Ответить с цитированием
Старый 20.06.2010, 19:24   #5
dampirik
Форумчанин
 
Регистрация: 02.07.2009
Сообщений: 722
По умолчанию

Цитата:
Математическая часть - векторное и псевдоскалярное произведения.
Реализация - считаются произведения (1, 2, 3 - вершины треугольника, 0 - точка):
a=(x1 - x0) * (y2 - y1) - (x2 - x1) * (y1 - y0)
b=(x2 - x0) * (y3 - y2) - (x3 - x2) * (y2 - y0)
c=(x3 - x0) * (y1 - y3) - (x1 - x3) * (y3 - y0)
Если они одинакового знака, то точка внутри треугольника, если что-то из этого - ноль, то точка лежит на стороне, иначе точка вне треугольника.
А что этого не достаточно?
В словесной форме:
1) вводите координаты точек
2) производите математические вычисления
3) проверяете: if((a>=0&&b>=0&&c>=0 )||(a<=0&&b<=0&&c<=0 )) лежит else не лежи

Ну или
Цитата:
Могу за плату сделать или давайте ваши наработки!
dampirik вне форума Ответить с цитированием
Старый 20.06.2010, 20:11   #6
pro100saniok
Пользователь
 
Регистрация: 20.06.2010
Сообщений: 33
Радость

спасибо сейчас буду делать

а как ввести координаты вершин треугольника ?

Последний раз редактировалось pro100saniok; 20.06.2010 в 22:06.
pro100saniok вне форума Ответить с цитированием
Старый 21.06.2010, 13:08   #7
pro100saniok
Пользователь
 
Регистрация: 20.06.2010
Сообщений: 33
Сообщение

вот решения етой задачи


Код:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace zadacha_2
{
    class Program
    {
        static void Main(string[] args)
        {

            int[] x = new int[4];
            int[] y = new int[4];
            for (int i = 0; i < 4; ++i)
            {
               Console.Write("Введите (x" + i.ToString() + ",y" + i.ToString() + "): ");
                x[i] = Console.Read();
                y[i] = Console.Read();
                Console.ReadLine();
            }
            int a = (x[1] - x[0]) * (y[2] - y[1]) - (x[2] - x[1]) * (y[1] - y[0]);
            int b = (x[2] - x[0]) * (y[3] - y[2]) - (x[3] - x[2]) * (y[2] - y[0]);
            int c = (x[3] - x[0]) * (y[1] - y[3]) - (x[1] - x[3]) * (y[3] - y[0]);

            if ((a >= 0 && b >= 0 && c >= 0) || (a <= 0 && b <= 0 && c <= 0))
            {
                Console.WriteLine("Принадлежит треугольнику");
            }
            else
            {
                Console.WriteLine("Не принадлежит треугольнике");
            }
            Console.ReadKey();
        }
    }
}
pro100saniok вне форума Ответить с цитированием
Старый 21.06.2010, 14:16   #8
mrChester
Я
Форумчанин
 
Аватар для mrChester
 
Регистрация: 24.04.2010
Сообщений: 693
По умолчанию

Я бы точки описал так:
Код:
Pont[] pt = new Point[4];
pt[i].X = Console.Read(); //обращение к Х координате i-й точки
pt[i].Y = Console.Read(); //обращение к Y координате i-й точки
Все персонажи вымышлены, все совпадения случайны.
Если жизнь игра, тогда я её разработчик ©.
mrChester вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Определить принадлежит ли точка с координатами х,у заштрихованной части плоскости. Брутальный М. Паскаль, Turbo Pascal, PascalABC.NET 8 04.04.2011 20:32
Принадлежит ли точка с координатами следующей области TOMMY666 Помощь студентам 3 29.04.2010 16:44
(Delphi)Принадлежит ли точка к заштрихованой части плоскасти zoza1 Помощь студентам 2 20.12.2009 23:20
узнать, принадлежит ли значение массиву Жираффа Microsoft Office Excel 4 25.03.2008 14:59
Принадлежит ли точка (x,y) круговому кольцу... Sota Паскаль, Turbo Pascal, PascalABC.NET 2 24.03.2008 17:03