Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование в широком смысле слова > Алгоритмика

Алгоритмика Об алгоритмах вообще; методы, обсуждения способов решения

Ответ
 
Опции темы
Старый 14.12.2014, 11:10   #1
MoteX
Нуждающийся
 
Аватар для MoteX
 
Регистрация: 21.10.2009
Сообщений: 51
Написано 6 полезных сообщений
(для 8 пользователей)
Смех Круг в массиве

Всем привет
Сегодня ломал голову, вспоминая геометрию.
Суть такова. Мы имеем массив к примеру m(30,30)
а центр окружности это 10 и 12.
Как из центра "нарисовать" окружность радиусом 4?
__________________
(ьсипдоп утэ йатич ен,йенгиф йадартс ен
(Offline)
 
Ответить с цитированием
Старый 14.12.2014, 12:07   #2
MadMedic
ПроЭктировщик
 
Регистрация: 05.08.2006
Сообщений: 183
Написано 107 полезных сообщений
(для 410 пользователей)
Re: Круг в массиве

Учитывая небольшие размерности задачи я бы сделал так
Во первых ограничил поле рисования квадратом с размерами 9 х 9 с центром в точке 10,12

Затем каждую точку этого поля проверял на расстояние до центра. Если расстояние меньше чем 4 (радиус круга), то закрашивать
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
MoteX (14.12.2014)
Старый 14.12.2014, 12:23   #3
MoteX
Нуждающийся
 
Аватар для MoteX
 
Регистрация: 21.10.2009
Сообщений: 51
Написано 6 полезных сообщений
(для 8 пользователей)
Ответ: Круг в массиве

Черт,это просто и гениально Только как это реализовать сразу по обеим координатам? Как определить расстояние от центра до точки по одной из осей это понятно. А как сделать эт сразу по двум? Что то голова уже закипела
...среднее арифметическое? похоже пора вдохнуть свежего воздуха
__________________
(ьсипдоп утэ йатич ен,йенгиф йадартс ен
(Offline)
 
Ответить с цитированием
Старый 14.12.2014, 12:32   #4
RegIon
Элита
 
Аватар для RegIon
 
Регистрация: 16.01.2010
Адрес: Новосибирск
Сообщений: 2,157
Написано 502 полезных сообщений
(для 1,012 пользователей)
Ответ: Круг в массиве

Сообщение от MoteX Посмотреть сообщение
Черт,это просто и гениально Только как это реализовать сразу по обеим координатам? Как определить расстояние от центра до точки по одной из осей это понятно. А как сделать эт сразу по двум? Что то голова уже закипела
...среднее арифметическое? похоже пора вдохнуть свежего воздуха
учи матчасть!!!!!!!!!!


for(i=0;i<30;i++){
     for(
j=0;j<30;j++){
           
int k x//центр по x
           
int m jy//центр по y 
           
if(k*k+m*m<=r*r)
                     
buff[i][j]=1;
     }

buff - массив,
r - радиус

даже за тебя набрал исходник
http://ideone.com/dyAiSR
__________________
Сайт: http://iexpo.ml
(Offline)
 
Ответить с цитированием
Старый 14.12.2014, 12:35   #5
MoteX
Нуждающийся
 
Аватар для MoteX
 
Регистрация: 21.10.2009
Сообщений: 51
Написано 6 полезных сообщений
(для 8 пользователей)
Ответ: Круг в массиве

Ну про функцию окружности я знаю только применить ее никак не получилось...попробую сейчас разобраться с твоим вариантом)
__________________
(ьсипдоп утэ йатич ен,йенгиф йадартс ен
(Offline)
 
Ответить с цитированием
Старый 14.12.2014, 12:47   #6
RegIon
Элита
 
Аватар для RegIon
 
Регистрация: 16.01.2010
Адрес: Новосибирск
Сообщений: 2,157
Написано 502 полезных сообщений
(для 1,012 пользователей)
Ответ: Круг в массиве

А самый быстрый вариант - https://ru.wikipedia.org/wiki/%D0%90...%D0 %BC%D0%B0
__________________
Сайт: http://iexpo.ml
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Andvrok (15.12.2014)
Ответ


Опции темы

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

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


Часовой пояс GMT +4, время: 00:14.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com