Войти
ПрограммированиеФорумОбщее

Фракталы. Кто их программирует? Есть пара непонятных моментов.

#0
19:42, 29 мар. 2010

Посмотрел Фракталы. Охота на скрытое измерение. Прикольный, правда без перевода почти ничерта не понял -- хорошо еще картинки показывали:) Концептуально получается так: выбирается объект природного происхождения; определяется его повторяющаяся часть; эта часть формализуется формулой; эта формула оборачивается в рекурсивную процедуру и отдается компьютеру. Про повторяющиеся элементы из детства задачи вспоминаются, где в картинки закономерность найти надо, из каких более простых элементов она построена. А в случае фрактала я так понял повторяющийся элемент один?


#1
20:10, 29 мар. 2010

Тебе по делу, или мимо крокодил?

#2
0:35, 30 мар. 2010

;******** ALEXSOFT ****************
;      23 июля 2002 г.
;  Fractal Mandelbrot v1.01(optim_rate)
IDEAL
P586
LOCALS
MODEL MEDIUM

SEGMENT sseg para stack 'STACK'
DB 400h DUP(?)
ENDS

DATASEG
x dw 320
ENDS

CODESEG
PROC Fractal_M
  START:
      mov ax,DGROUP
      mov ds,ax
      mov ax,13h
      int 10h
      mov bh,0a0h
      mov es,bx
      db 0dbh,0e3h
      fld1
      fld1
      fldl2t
      fldpi
      fidiv [x]
     
      mov bh,0fah
tudy: mov dx,320
;*****************  Bigin calculate summa.  **********************
paint:
      fld st(2)
      fld st(4)
      mov cl,100
cicl: fld st(1)
      fmul st,st
      fld st(1)
      fmul st,st
      fsubp st(1),st
      fadd st,st(5)
      FXCH st(2) 
      fmul st,st(1)
      fadd st,st
      fadd st,st(6)
      fst st(1)   
      fabs
      fcomp st(4)
      db 0dfh,0e0h
      sahf
      jnc End_calc
      loop cicl
;********  End of calculate  *************************
End_calc:
      fcompp st(1)   
      mov [es:bx],cl
      dec bx
snova:
      fsub st(2),st
      dec dx
      jnz paint

      fld1
      fstp st(3)
      fsub st(3),st
      or bx,bx
      jnz tudy
;vce
      mov ah,8
      int 21h
      mov ax,3
      int 10h
      ret
ENDP Fractal_M
ENDS
END START

#3
8:06, 30 мар. 2010

M|0nxGauzen
  Простейший из таких фракталов - лист папоротника Барнсли. По нему можно много ссылок найти. Процедура там не рекурсивная, хотя одни точки зависят от других. А мандельброт это малость из другой оперы.

#4
11:57, 30 мар. 2010

Ну если совсем простой, то это треугольник в треугольнике, а в каждом ещё по треугольнику и т.д.б.

#5
13:08, 30 мар. 2010
org  100h
mov  ax,13h
int  10h
push 0A000h
pop  ds
inc  byte[ds:si-1]
@@:lodsb
   xor al,[ds:si-320]
   mov [ds:si],al
   test si,si
jne @b
@@: jmp @b
#6
13:37, 30 мар. 2010

M|0nxGauzen
смотри эту статью о L-системах

#7
19:05, 30 мар. 2010

kvakvs
> Тебе по делу, или мимо крокодил?
По делу -- хочу свои создавать.
Zefick
Rooctor
Tiendil
Ладно, пойду гуглить. Вернусь позже.:)

#8
21:25, 30 мар. 2010

>выбирается объект природного происхождения; определяется его повторяющаяся часть;
вроде в природе абсолютно чистых фракталов нет, есть только объекты, имеющие подобный вид. Поэтому повторяющуюся часть можно и не найти просто.

А вообще фракталы, заданные рекурсивно, строятся заменой их частей на сам фрактал, который есть сейчас (возможно с преобразованиями подобия) То есть если в букве L заменять палочки на соответствующим образом повёрнутую и отмасштабированную букву L опять же, то получится как раз фрактал. А поскольку в фрактале Мандельброта процесс проверки точек рекурсивный и там тоже периодически происходит "зацикливание", то он такой же в общем фрактал, как и другие примеры. Только задан по другому.

ПрограммированиеФорумОбщее

Тема в архиве.