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)