forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Алгоритмика (http://forum.boolean.name/forumdisplay.php?f=21)
-   -   Круг в массиве (http://forum.boolean.name/showthread.php?t=19578)

MoteX 14.12.2014 11:10

Круг в массиве
 
Всем привет:)
Сегодня ломал голову, вспоминая геометрию.
Суть такова. Мы имеем массив к примеру m(30,30)
а центр окружности это 10 и 12.
Как из центра "нарисовать" окружность радиусом 4?
:dontknow:

MadMedic 14.12.2014 12:07

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

Затем каждую точку этого поля проверял на расстояние до центра. Если расстояние меньше чем 4 (радиус круга), то закрашивать

MoteX 14.12.2014 12:23

Ответ: Круг в массиве
 
Черт,это просто и гениально :-D Только как это реализовать сразу по обеим координатам? Как определить расстояние от центра до точки по одной из осей это понятно. А как сделать эт сразу по двум? Что то голова уже закипела
...среднее арифметическое? похоже пора вдохнуть свежего воздуха :)

RegIon 14.12.2014 12:32

Ответ: Круг в массиве
 
Цитата:

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

учи матчасть!!!!!!!!!!:wild:


PHP код:

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

MoteX 14.12.2014 12:35

Ответ: Круг в массиве
 
Ну про функцию окружности я знаю :) только применить ее никак не получилось...попробую сейчас разобраться с твоим вариантом)

RegIon 14.12.2014 12:47

Ответ: Круг в массиве
 
А самый быстрый вариант - https://ru.wikipedia.org/wiki/%D0%90...%D0 %BC%D0%B0


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

vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot