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

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

Войти
Регистрация
Восстановить пароль
 
Winterad
3 / 3 / 0
Регистрация: 15.12.2012
Сообщений: 14
#1

Определить точки круга - C++

17.01.2013, 10:05. Просмотров 321. Ответов 4
Метки нет (Все метки)

Доброго времени суток!

Допустим есть матрица:
C++
1
int matrix [41][41];
Центр круга x = 20 и y = 20. Радиус = 15.
Необходимо обозначить на матрице точки круга, записав единицу(1) в нужные элементы матрицы.

Помогите пожалуйста такое реализовать.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.01.2013, 10:05     Определить точки круга
Посмотрите здесь:

Определить точки пересечения круга и прямоугольника - C++
Помогите, пожалуйста!( Даны вещественные числа x1, y1, r, x2, y2, x3, y3. Определите, существуют ли общие точки у круга с центром в точке...

Точки круга - C++
Помогите написать программу ---------------------------------------------------------------------------------------------- Сколько...

Подсчитать точки, находящиеся вне круга с заданным диаметром - C++
есть задача: 13. Пара (Xk, Yk) представляет координаты одной из n точек на плоскости. Подсчитать точки, находящиеся вне круга диаметром D,...

Найти наименьший радиус круга и его центр в который бы попали данные точки - C++
Найти наименьший радиус круга и его центр в который бы попали данные точки. На первой строке подается кол-во точек n, затем на n...

Выбрать все точки совокупности, лежащие вне круга заданного радиуса R с центром в заданной точке - C++
Дана совокупность N различных точек плоскости. Выбрать все точки совокупности, лежащие вне круга заданного радиуса R с центром в ...

Круг, множество точек, прямая проходящая через две точки и через центр круга - C++
плиз хелп. Нужно вывести координаты двух точек. #include <stdio.h> #include <math.h> #include <random> #include <ctime> using...

Определить разницу площадей круга и квадрата - C++
Задан радиус круга К. Определить разницу площадей круга и квадрата, вписанного в этот круг. Заданий радіус кола К Визначити різницю...

Определить количество плиток попадающих внутрь круга - C++
Лич Сандро проводит свои научные исследования в магии огня. Сандро стоит в центре огромного квадратного зала площадью миллион квадратных...

Определить количество точек на плоскости, попадающих внутрь круга - C++
собственно сабж. прошу помощи в решении. 1)Даны натуральное число k и вещественные массивы Х, У. Определить количество точек на...

Определить площадь круга и длину окружности,ограничивающей круг - C++
Описать переменную "круг", в которой содержатся все данные для построения круга на плоскости в декартовой системе координат.Определить...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
SatanaXIII
Супер-модератор
Эксперт С++
5602 / 2636 / 242
Регистрация: 01.11.2011
Сообщений: 6,495
Завершенные тесты: 1
17.01.2013, 10:41     Определить точки круга #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
#include <iostream.h>
#include <math.h>
 
 
int main()
{
int a=20, b=20, R=15; // Координаты центра и радиус
 
const int mx=41, my=41;
 
int matrix [mx][my];
 
for(int x=0; x<mx; x++)
  for(int y=0; y<my; y++)
    {
    if( (pow((x-a),2) + pow((y-b),2)) <= pow(R,2) ) //(x-a)^2 + (y-b)^2 <= R^2 Формула круга
      matrix[x][y]=1;
    else
      matrix[x][y]=0;
    }
 
 
for(int x=0; x<mx; x++)
  {
  for(int y=0; y<my; y++)
    {
    cout << matrix[x][y] << " "; // Вывод на экран
    }
  cout << endl;
  }
 
cin.ignore();
return 0;
}
Winterad
3 / 3 / 0
Регистрация: 15.12.2012
Сообщений: 14
17.01.2013, 12:33  [ТС]     Определить точки круга #3
Спасибо.

А покажите пожалуйста пример кода, который определяет только точки по краю круга. Без заполнения середины.
SatanaXIII
Супер-модератор
Эксперт С++
5602 / 2636 / 242
Регистрация: 01.11.2011
Сообщений: 6,495
Завершенные тесты: 1
17.01.2013, 15:17     Определить точки круга #4
Цитата Сообщение от Winterad Посмотреть сообщение
А покажите пожалуйста пример кода, который определяет только точки по краю круга. Без заполнения середины.
Ну вот балуйся с этим условием:
C++
1
if( (pow((x-a),2) + pow((y-b),2)) <= pow(R,2) )
Если заместо <= поставить ==, тогда будут выведены точки, которые точно лежат на границе окружности. Но при такой малой дискретизации они врятли составят замкнутый круг. Так что надо использовать условие типа
C++
1
2
    if( (pow((x-a),2) + pow((y-b),2)) <= pow(R,2) &&
        (pow((x-a),2) + pow((y-b),2)) >= pow(R,2)-30)
То есть выводить точки, лежащие не точно на окружности, а в некотором абстрактном приближении (-30).
При чем в данном случае (когда вычитается только из второго условия) нарисованная таким образом окружность никогда не выйдет за пределы своего радиуса. А если, к примеру, к первому условию прибавить пятнадцать (+15), а из второго вычесть так же пятнадцать (-15), то окружность будет отображена без смещения вовнутрь, но при этом уже выйдет за границы первоначального радиуса. Это как толщина линии.
P.S. Для надежности уточню: само число 30 придумано из головы. Можно туда вписать любое другое.
Igor3D
943 / 476 / 43
Регистрация: 01.10.2012
Сообщений: 2,362
17.01.2013, 15:29     Определить точки круга #5
Цитата Сообщение от SatanaXIII Посмотреть сообщение
C++
1
if( (pow((x-a),2) + pow((y-b),2)) <= pow(R,2) )
Неаккуратно
Yandex
Объявления
17.01.2013, 15:29     Определить точки круга
Ответ Создать тему
Опции темы

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