Implementacja Fraktala - Trójkąt Sierpińskiego w Javie.
Sierpiński Wacław, urodził się w 1882, zmarł w 1969, matematyk, jeden z twórców warszawskiej szkoły matematycznej, autor licznych prac z dziedziny teorii mnogości, teorii liczb, teorii funkcji rzeczywistych i topologii. Studiował na uniwersytecie w Warszawie, a następnie podjął pracę w szkolnictwie średnim. Przyłączywszy się do strajku szkolnego w 1905, porzucił tę pracę i wyjechał do Krakowa, gdzie się doktoryzował. Od 1910 był profesorem na uniwersytecie we Lwowie. Prowadzony tam przez Sierpińskiego wykład teorii mnogości był pierwszym w świecie systematycznym wykładem tej teorii. W czasie I wojny światowej Sierpiński był internowany w Rosji przez władze carskie. W 1918 powrócił do Lwowa, a od nowego roku akademickiego 1918/19 objął katedrę matematyki w odrodzonym po latach niewoli Uniwersytecie Warszawskim (UW). W 1920—51 Sierpiński wraz z S. Mazurkiewiczem (do 1945), następnie z K. Kuratowskim pełnił funkcję redaktora naczelnego polskiego czasopisma matematycznego „Fundamenta Mathematicae". Był inicjatorem Pierwszego Kongresu Matematyków Krajów Słowiańskich, który odbył się w 1929 w Warszawie; reprezentował matematykę polską na sześciu kongresach międzynarodowych. W 1931 — 51 był prezesem Towarzystwa Naukowego Warszawskiego. W okresie okupacji hitlerowskiej wykładał na tajnym uniwersytecie, nie przerywając pracy naukowej. W 1945, po krótkim pobycie na Uniwersytecie Jagiellońskim, powrócił na UW i kontynuował działalność naukową oraz dydaktyczną. W 1958—69 był redaktorem naczelnym wznowionego czasopisma polskiego „Acta Arithmetica", jedynego wówczas na świecie czasopisma poświęconego głównie teorii liczb. W czasie niezwykle aktywnego życia Sierpiński wykładał na 47 uniwersytetach świata i wykształcił kilka pokoleń matematyków. Jego imieniem nazwano jedną z nagród Polskiego Towarzystwa Matematycznego. Dorobek naukowy Sierpińskiego obejmuje około 900 publikacji, w tym kilkadziesiąt książek, m. in. monografie, podręczniki akademickie, podręczniki szkolne, książeczki popularnonaukowe (kilka ważnych dzieł ukazało się tylko w językach obcych). Pierwsze prace Sierpińskiego dotyczyły teorii liczb. Później (1909) skierował Sierpiński zainteresowania ku teorii mnogości, przyczyniając się do przekształcenia tej dyscypliny matematycznej w usystematyzowaną teorię. Zajmował się głównie aksjomatem wyboru, hipotezą continuum, a także arytmetyką liczb kardynalnych i liczb porządkowych. Niektóre prace Sierpińskiego były poświęcone zagadnieniu przystawania przez rozkład i rozkładom paradoksalnym. W topologii znana jest krzywa Sierpińskiego, zwana także -dywanem Sierpińskiego. Wyniki Sierpińskiego w zakresie funkcji rzeczywistych dotyczą m. in. szeregów funkcyjnych i różniczkowalności funkcji. Sierpiński jest autorem takich książek, jak: Teoria liczb niewymiernych (1910), Teoria liczb (1914), Zarys teorii mnogości, część l Liczby pozaskończone (1923), część 2 Topologia ogólna (1928), Wstęp do teorii mnogości i topologii (1930), Wstęp do teorii funkcji zmiennej rzeczywistej (1932), Wstęp do teorii liczb (1933), Przekroje. Wstęp do teorii liczb niewymiernych (1934), Zasady algebry wyższej (1946), Trójkąty pitagorejskie (1954), Arytmetyka teoretyczna (1955), O rozwiązywaniu równań w liczbach całkowitych (1956), Czym się zajmuje teoria liczb (1957), O rozkładach liczb wymiernych na ułamki proste (1957), O stu prostych, ale trudnych zagadnieniach arytmetyki, z pogranicza geometrii i arytmetyki (1959), Teoria liczb (część 2 1959), Co wiemy, a czego nie wiem v o liczbach pierwszych (1961), Liczby trójkątne (1962), 200 zadań z elementarnej teorii liczb (1964), O teorii mnogości (1964).
Implementacja w Javie.
import java.applet.*;
import java.awt.*;
public class Sierpinski extends Applet {
Graphics g;
Point a1,b1,c1, a2,b2,c2, a3,b3,c3;
int level = 0;
public void init() {
setBackground(new Color(255,255,255));
}
public boolean mouseDown(Event ev, int x, int y) {
if (!ev.metaDown()) level += 1;
else if (level>0) level -= 1;
repaint();
return true;
}
public void paint(Graphics g) {
int xCoords[] = {10, 390, 200};
int yCoords[] = {390, 390, 10};
g.drawPolygon(xCoords, yCoords, 3);
drawTriangle(g, new Point(10,390),new Point(390,390),new Point(200,10), level);
}
public void drawTriangle(Graphics g, Point a, Point b, Point c, int level) {
if (level==0) return;
level -= 1;
int xCoords[] = {c.x, (c.x+b.x)/2, (a.x+c.x)/2};
int yCoords[] = {b.y, (c.y+a.y)/2, (c.y+a.y)/2};
g.drawPolygon(xCoords, yCoords, 3);
a1 = a;
b1 = new Point(c.x, b.y);
c1 = new Point((a.x+c.x)/2, (c.y+a.y)/2);
drawTriangle(g, a1, b1, c1, level);
a2 = new Point(c.x, b.y);
b2 = b;
c2 = new Point((c.x+b.x)/2, (c.y+a.y)/2);
drawTriangle(g, a2, b2, c2, level);
a3 = new Point((a.x+c.x)/2, (c.y+a.y)/2);
b3 = new Point((c.x+b.x)/2, (c.y+a.y)/2);
c3 = c;
drawTriangle(g, a3, b3, c3, level);
}
}