Książka MuPAD dla niecierpliwych zawiera wiele interesujących przykładów grafiki matematycznej. Rozdział o programowaniu jest szczególnie dobrym miejscem na pokazanie w jaki sposób możemy budować skomplikowane obiekty matematyczne używając do tego celu tak prostych elementów jak okręgi, odcinki, czy kule. W ten sposób powstała kolejna wersja znanego powszechnie trójkąta Sierpińskiego. Jest to oczywiście fraktal, a dokładniej jego n-te przybliżenie (w naszym przypadku n=6). Dla celów tej książki, otrzymany obiekt określam jako Fraktal Kołowy Sierpińskiego. Powyżej pokazuję nasz fraktal obrócony o 90 stopni, a poniżej podaję jego kod.
fraktal := proc(kroki) local Lista, k; begin Lista := []: k :=PI/3: kolo := proc(x,y,r, kroki) begin A := plot::Circle2d(r,[x,y], Filled=TRUE, FillColor= [1-kroki/10, kroki/10, kroki/10], FillPattern=Solid, LineWidth=0.01 ); Lista := Lista.[A] end_proc: iteracja := proc(x,y,r,kroki) local x1, x2, x3, y1, y2, y3; begin if kroki=0 then kolo(x,y,r,kroki) else kolo(x,y,r,kroki): x1 := x+2*r: y1 := y: x2 := x-2*r*cos(k): y2 := y+2*r*sin(k): x3 := x-2*r*cos(k): y3 := y-2*r*sin(k): r := r/2: kroki := kroki-1: // kolejne kroki rekurencyjne iteracja(x1,y1,r, kroki): iteracja(x2,y2,r, kroki): iteracja(x3,y3,r, kroki): end_if end_proc: iteracja(0,0,1,kroki): return(op(Lista)) end_proc: plot( fraktal(6), Axes=None Scaling=Constrained )