Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
fdcastro
0 / 0 / 0
Регистрация: 15.01.2013
Сообщений: 26
#1

Точки в системе координат. Visual Studio - C++

10.04.2013, 17:35. Просмотров 878. Ответов 3
Метки нет (Все метки)

Нужно определить принадлежность этой области точки, координаты которой вводятся с клавиатуры.

Точки в системе координат. Visual Studio

Вот что-то похожее нашел, но там выбивает или только координаты точки на оси х или только на оси у...

C++
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
28
29
30
31
32
33
#include <iostream>
using namespace std;
 
int main()
{
setlocale(0, "Russian");
double num;
int k,x,y;
 
cout << "Введите произвольное число x: \n"<< endl;
cin >> x;
cout << "Введите произвольное число y: \n"<< endl;
cin >> y;
if ((-2<=(x*x)) && ((x*x)<=2)) 
{
cout << "Это число на линии x:\n" << endl;
k = x;
} else 
if ((-1<=y) && (y<=2)) 
{
cout << "Это число на линии y:\n" << endl;
k = y;
} else 
{ 
cout << "Этого числа нету в данном графике.\n" << endl;
k = k;
}
 
cout << "Ответ = " << k << endl;
int test;
cin >> test;
return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.04.2013, 17:35     Точки в системе координат. Visual Studio
Посмотрите здесь:
C++ Определить месторасположение точки в декартовой системе координат
C++ Определить расположение заданной точки в декартовой системе координат
Определить месторасположение точки в декартовой системе координат (найдите ошибку) C++
C++ Программа, определяющая положение точки в декартовой и полярной системе координат
C++ Составить логическое выражение для описания сложных областей точек в системе координат XY. Выявить принадлежность этой области точки
C++ Определить номер точки, через которую проходит окружность с центром в начале координат, внутрь которой попадают все оставшиеся точки.
C++ Перемещение в системе координат
C++ Точка в трехмерной системе координат
C++ График в полярной системе координат
C++ Изменить отсчет углов в системе координат
Создайте структуру,описывающую точку в трехмерной системе координат C++
C++ Почему так странно находятся углы в сферической системе координат

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
stima
449 / 298 / 20
Регистрация: 22.03.2011
Сообщений: 966
Завершенные тесты: 2
10.04.2013, 18:30     Точки в системе координат. Visual Studio #2
C++
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
#include <iostream>
 
struct Point
  {
  int x, y;
  }
 
bool is_on_square(const Point& input, const Point *square_pnts)
  {
  return false;
  }
 
bool is_on_circle(const Point& input, const Point& center, int radius)
  {
  int l = (input.x - center.x) * (input.x - center.x) + (input.y - center.y) * (input.y - center.y);
  return l < radius * radius;
  }
 
bool is_on_triangle(const Point& input, const Point *tr_ps)
  {
  int d1 = (tr_ps[1].y - tr_ps[0].y) * (input.x - tr_ps[0].x) - (tr_ps[1].x - tr_ps[0].x) * (input.y - tr_ps[0].y); 
  int d2 = (tr_ps[2].y - tr_ps[1].y) * (input.x - tr_ps[1].x) - (tr_ps[2].x - tr_ps[1].x) * (input.y - tr_ps[1].y); 
  int d3 = (tr_ps[0].y - tr_ps[2].y) * (input.x - tr_ps[2].x) - (tr_ps[0].x - tr_ps[2].x) * (input.y - tr_ps[2].y);
 
  return  (d1 > 0 && d2 > 0 && d3 > 0) || (d1 < 0 && d2 < 0 && d3 < 0);
  }
 
int main()
  {
  Point input;
 
  Point square_pnts[] = { {0, 0}, {0, 2}, {2, 2}, {2, 0} };
 
  Point triangle_pm_pnts[] = { {0, 0}, {2, 0}, {-2, 0} };
  Point triangle_mp_pnts[] = { {0, 0}, {-2, 0}, {2, 0} };
 
  Point circle_pnt = {0, 0};
  int radius = 2;
  
  std::cout << "Enter the dot: " << std::endl;
  std::cin >> input.x >> input.y;
  
  bool ok = false;
 
  if (input.x == 0 && input.y == 0)
    ok = true;
  else if (input.x  > 0 && input.y > 0)
    ok = is_on_square(input, square_pnts);
  else if (input.x  > 0 && input.y < 0)
    ok = is_on_triangle(input, triangle_pm_pnts);
  else if (input.x < 0 && input.y < 0)
    ok = is_on_circle(input, circle_pnt, radius);
  else
    ok = is_on_triangle(input, triangle_mp_pnts);
 
  std::cout << "Point ";
  ok ? std::cout << " is " : std::cout << " isn't ";
  std::cout << " on figure" << std::endl;
 
  return 0;
  }
Для квадрата напишешь сам.
fdcastro
0 / 0 / 0
Регистрация: 15.01.2013
Сообщений: 26
10.04.2013, 21:03  [ТС]     Точки в системе координат. Visual Studio #3
Ого! Вот это код)) Никак проще эту задачу не сделать? Не поверят, что я это написал))

Добавлено через 3 минуты
Я думаю, что за точность фигуры спрашивать не будут. Можно как-то написать просто от -2 до 2 по х, и -2 до 2 по у?
stima
449 / 298 / 20
Регистрация: 22.03.2011
Сообщений: 966
Завершенные тесты: 2
10.04.2013, 23:37     Точки в системе координат. Visual Studio #4
Дам идею. Разбейте координатную систему на 4 части (хотя по сути она уже разбита). Эти части обозначим так:
1. ++ - где x и y положительны
2. +- - где х положителен и у отрицателен и т.д.

Каждой части принадлежит фигура. Определите в какую из частей попадает входящая точка. Вызовите функцию обрабатывающую условие: "принадлежит ли точка данной фигуре". Данные проверки это часть линейной алгебре, а не программирования и их легко можно найти.
Yandex
Объявления
10.04.2013, 23:37     Точки в системе координат. Visual Studio
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru