Страница 1 из 1

Рисование точек в наилучшем масштабе

Добавлено: 07 апр 2005, 00:01
BUFFER90
Задали написать программу, которая бы читала из файла точки и выводила их в самом удобном масштабе. То есть если точки лежат только в первой и четвертой четвертях, то рисовать только ту часть графика, в которой находятся точки (1 и 4 четверти). Есть ли какой -нибудь более простой алгоритм, чем рассмотрение случаев расположения точек в лоб?
Помогите,пожалуйста! Заранее огромное спасибо!

Добавлено: 07 апр 2005, 11:53
Romeo
Заводим матрицу 3 на 3. Каждый элемент хранит количество точек в определённой области декартовой плоскости.

Код: Выделить всё

                  |
                  |
  (0,0)         (0,1)            (0,2) 
                  |
--(1,0)---------(1,1)------------(1,2)--
                  |
  (2,0)         (2,1)            (2,2)
                  |
                  |
Т.е. угловые элементы матрицы отвечают за координатные четверти, элемент (1,1) - за начало координат, а все остальные элменты матрицы - за координатные полуоси.

Теперь пробегаем по всем данным точкам и анализируем их координаты (>0, <0 или =0) и инкрементрируем соответствующий элемент матрицы.

После окончания цикла достаточно проанализировать элементы матрицы. Если мы имеем все нули в любой крайней строке или в любом крайнем столбце (крайний - это первый или последний), то соответствующую полуплоскость можно не рисовать.

Добавлено: 10 апр 2005, 14:49
BUFFER90
У тебя кода случайно не найдется? Мне алгоритм как-то не очень понятен.

Добавлено: 11 апр 2005, 14:42
Romeo
Конечно же готового кода у меня нет, а реализовывать алгоритм, к сожалению, нет времени. Лучше спроси, что именно не понятно в алгоритме. Отвечу с удовольствием. Старался описывать алгоритм предельно ясно, честное слово, специально не использовал никаких computer science терминов - лишь элементарные термины школьной геометрии и алгебры первого курса иниверситета.

Re: Рисование точек в наилучшем масштабе

Добавлено: 12 апр 2005, 08:48
Hup
BUFFER90 писал(а):То есть если точки лежат только в первой и четвертой четвертях, то рисовать только ту часть графика, в которой находятся точки (1 и 4 четверти). Есть ли какой -нибудь более простой алгоритм, чем рассмотрение случаев расположения точек в лоб?
Можно еще считать угл... ИМХО не сложно

Добавлено: 19 апр 2005, 20:44
BUFFER90
Спасибо большое. Все это навело меня на очень даже неплохие мысли. Очень даже неплохо вышло.