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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 07.02.2015, 20:00   #1
ilya0610
Новичок
Джуниор
 
Регистрация: 24.01.2014
Сообщений: 2
По умолчанию Определение попадание точки в фигуру

Здравствуйте, есть фигура, как определить попадает произвольная точка в центр или нет.
Вот что получилось, но понимаю, что здесь не верно. point - передает значение, которое вводит пользователь
A, A1, A2, A3 - параметры фигуры. Также прикрепил график заданной фигуры.
Код:
bool CMy2DObjectA5::IsInside(const CMy2DPoint &point)
{
    //Смещае мначало координат в цент фигуры
    double px=point.getx()-m_centre.getx();
    double py=point.gety()-m_centre.gety();
    double x,y;
    //вращаем точку так, чтобы она лягла относительно фигуры без поворота
    x = px * cos(-m_dAngle*(M_PI/180.0)) - py * sin(-m_dAngle*(M_PI/180.0));
    y = py * cos(-m_dAngle*(M_PI/180.0)) + px * sin(-m_dAngle*(M_PI/180.0));
    //x и y показывают точку относительно фигуры так, если бы она располагалась в начале координат без поворота
    //центр окружности с радиусом A1
    double x0=A1-A/2.0;
    double y0=A/2.0-A1;
    if(((x-x0)*(x-x0)+(y-y0)*(y-y0))<(A1*A1))
        return false;
    //центр окружности с радиусом A3
    double x1=A3-A/2.0;
    double y1=A/2.0-A3;
    if(((x-x1)*(x-x1)+(y-y1)*(y-y1))<(A3*A3))
        return false;
    //центр окружности с радиусом A2
    double x2=A2-A/2.0;
    double y2=A/2.0-A2;
    //если точка расположена 
    if(((x-x2)*(x-x2)+(y-y2)*(y-y2))<(A2*A2))
        return false;
    //если дошли сюда, то точка внутри фигуры
    return true;
}
Вложения
Тип файла: doc Фигура.doc (110.0 Кб, 16 просмотров)
ilya0610 вне форума Ответить с цитированием
Старый 08.02.2015, 11:56   #2
magnet
Пользователь
 
Регистрация: 02.02.2015
Сообщений: 24
По умолчанию

Как то не пнятно зачем такие сложности, если извесно :

Центр фигуры:
Код:
m_centre
и
Цитата:
point - передает значение, которое вводит пользователь
Нельзя просто их сравнить?
Или с условием что то не так?
magnet вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Попадание точки в область на C Ashley12 Помощь студентам 7 16.10.2013 20:27
попадание точки в область arshavin Паскаль, Turbo Pascal, PascalABC.NET 4 04.05.2011 15:28
Задача на попадание или непопадание точки в фигуру Fallen Angel Помощь студентам 3 19.12.2010 22:32
Попадание точки в область (С++) Evgenii90 Помощь студентам 10 16.04.2010 22:41
Попадание точки в область С++ Geg[C/c++] Помощь студентам 3 03.05.2009 12:58