Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > .NET > Общие вопросы .NET
Регистрация

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


Донат для форума - использовать для поднятия настроения себе и модераторам

А ещё здесь можно купить рекламу за 15 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru

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

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

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

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

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

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

icq: 301040873
По умолчанию

Цитата:
Математическая часть - векторное и псевдоскалярное произведения.
Реализация - считаются произведения (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
Репутация: 10
Радость

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

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

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

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


Код:

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
Репутация: 261

icq: 3170154
По умолчанию

Я бы точки описал так:
Код:

Pont[] pt = new Point[4];
pt[i].X = Console.Read(); //обращение к Х координате i-й точки
pt[i].Y = Console.Read(); //обращение к Y координате i-й точки

__________________
Все персонажи вымышлены, все совпадения случайны.
Если жизнь игра, тогда я её разработчик ©.
mrChester вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

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


19:52.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.

Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru