Детально:
1) С помощью imagecreatetruecolor() создается изображение 500 на 500.
2) Функцией imagerectangle() изображение заполняется квадратами одинакового размера. Пустая сетка
3)Поверх квадратов функцией imagearc() рисуется окружность. Выглядит так.
Вопрос - как узнать количество квадратов полностью попавших в окружность???
Сложность в том что при одинаковом диаметре окружности кол-во квадратов полностью попавших в нее зависит от координат центра окружности. Например так.
Спустя 17 минут, 36 секунд (14.08.2010 - 22:45) Basili4 написал(а):
Alexander077
Можно представит квадрат множеством точек. после наложения круга с известным цветом например зеленый все квадраты по точкам проходить и спрашивать какого цвета пиксель если зеленый далее идем. Если все точки квадрата прошли значит квадрат вписан.
можно исходя из этого получить уравнения точек очерчивающих квадрат и тем же способом проходится о ним.
Можно представит квадрат множеством точек. после наложения круга с известным цветом например зеленый все квадраты по точкам проходить и спрашивать какого цвета пиксель если зеленый далее идем. Если все точки квадрата прошли значит квадрат вписан.
можно исходя из этого получить уравнения точек очерчивающих квадрат и тем же способом проходится о ним.
Спустя 2 часа, 11 минут, 33 секунды (15.08.2010 - 00:57) Guest написал(а):
Basili4
Накладывая круг таким образом пропадут линии квадратов.
Alexander077
А обязательно соблюдать указаный порядок или можно сначала круг, а потом квадраты?
Накладывая круг таким образом пропадут линии квадратов.
Alexander077
А обязательно соблюдать указаный порядок или можно сначала круг, а потом квадраты?
Спустя 6 часов, 18 минут, 33 секунды (15.08.2010 - 07:15) Michael написал(а):
Заданы я так понимаю:
- центр круга, радиус круга (именно круга - а не эллипса)
- расчерчена сетка и известны координаты каждого квадрата.
Проверять близлежащие квадраты так:
от центра круга к каждой вершине квадрата проводится отрезок и если длина всех 4-х отрезков меньше радиуса - ОК.
Как отрезок проводится. Считаются dX и dY - модули разницы координат центра окружности и вершины квадрата. Если обе больше нуля, то по теореме Пифагора длину отрезка вычисляем, если одна нулевая, то вторая - нужная длина.
- центр круга, радиус круга (именно круга - а не эллипса)
- расчерчена сетка и известны координаты каждого квадрата.
Проверять близлежащие квадраты так:
от центра круга к каждой вершине квадрата проводится отрезок и если длина всех 4-х отрезков меньше радиуса - ОК.
Как отрезок проводится. Считаются dX и dY - модули разницы координат центра окружности и вершины квадрата. Если обе больше нуля, то по теореме Пифагора длину отрезка вычисляем, если одна нулевая, то вторая - нужная длина.
Спустя 6 часов, 15 минут, 27 секунд (15.08.2010 - 13:31) Alexander077 написал(а):
Michael, спасибо большое. Как говорится - гениально и просто. По формуле
считаем расстояние от центра окр. до каждой вершины каждого квадрата и получаем нужный результат
.

