Re: математическая задачка

From
Rustam Ramazanov ()
To
Vjacheslav Maslov
Date
2002-10-14T20:29:17Z
Area
RU.ALGORITHMS
From: Rustam Ramazanov <ramazanoff@univer.kharkov.ua>

Приветствую!

> Господа, волею судьбы столкнулся я с такой задачкой.
> Есть функция, draw(double x0, double x1,double y0,double y1) - рисует 
фрактал
> на участке от (x0,y0) до (x1,y1). Числа x0,x1,y0,y1 - небольшие 
вещественные
(меньше 2).
Плавали, знаем. Величины не важны.
Можешь попробовать построить не только z^2 строить. А например,
1/z^2. Довольно интересные картинки получаются.

> Хочется сделать увеличение. То есть выбираем на экране мышкой нужную 
область,
> затем пересчитываем x0,x1,y0,y1 и получаем новую фигуру.

> Дано:
> (sx,sy) - верхняя левая точка новой область;
> (ex,ey) - нижняя правая;
> MaxX	  - количество точек по горизонтали;
> MaxY	  - количество точек по вертикали;
> (x0,y0) - верхняя левая граница фрактала;
> (x1,y1) - нижняя правая граница фрактала.
> --------------------------------------------------
> Наити:
> (x0`,y0`),(x1`,y1`) - новые границы области.
Я несколько упрощу себе жизнь, пусть верхняя левая точка будет с
координатами (0,0).
Тады:
kx=(x1-x0)/MaxX
ky=(y1-y0)/MaxY
Тут все понятно, если хочется, то можно использовать и обратные 
величины - по
желанию.
Далее остается получить новые границы:
x0'=x0+sx*kx
y0'=y0+sx*ky
Аналогично поступаем с точкой (x1', y1').
Кажется нигде не наврал. Если верхняя левая точка не (0,0), то надо 
вместо sx
брать sx-Ox и т.д.

----
Рустам.
-- 
Отправлено через сервер Форумы@mail.ru - http://talk.mail.ru
--- ifmail v.2.15dev5
 * Origin: Talk.ru (2:5020/400)