.: Neue alte Features
Nun sind wieder ein paar alte Features zum Vorschein gekommen :-) Dabei hat mir PHP den Weg nicht gerade leicht gemacht. Angenommen, man will ein Array in einem Cookie speichern indem man serialize() und unserialize() benutzt, könnte folgender Code entstehen. function saveData ( $data ) {
setcookie('cookiename', serialize($data), time()+3600*24*100);
}
function loadData () {
return unserialize($_COOKIE['cookiename']);
} Das funktioniert aber leider nicht. Damit es funktioniert muss noch stripslashes() benutzt werden. function saveData ( $data ) {
setcookie('cookiename', serialize($data), time()+3600*24*100);
}
function loadData () {
return unserialize(stripslashes($_COOKIE['cookiename']));
}
|
.: Kochsche Kurve
Heute haben wir im Java-Programmieren mit GUI-Programmierung angefangen. Die Exercices waren simpel (Buttons erzeugen, ausrichten etc.), jedoch hatte es als Zusatzaufgabe noch die Kochsche Kurve. 
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
/**
* Kochsche Kurve
*
* @author Andreas Jaggi
* @created 26. März 2004
* @version 1.0
*/
public class KochscheKurve
extends JFrame {
/**
* Constructor for the KochscheKurve object
*/
public KochscheKurve() {
setSize( 600, 600 );
setTitle( "Die Kochsche Kurve" );
}
/**
* Überladene "interne" Methode, die aufgerufen wird, wenn das Fenster neu
* gezeichnet werden muss
*
* @param g Graphik-Objekt, auf dem gezeichnet wird
*/
public void paint( Graphics g ) {
super.paint( g );
double x1;
double x2;
double x3;
double y1;
double y2;
double y3;
int depth = 13;
x1 = 100;
y1 = 400;
x2 = 500;
y2 = 400;
x3 = ( x2 - x1 ) * Math.cos( -Math.PI / 3 ) -
( y2 - y1 ) * Math.sin( -Math.PI / 3 ) + x1;
y3 = ( x2 - x1 ) * Math.sin( -Math.PI / 3 ) +
( y2 - y1 ) * Math.cos( -Math.PI / 3 ) + y1;
koch( g, depth, x2, y2, x1, y1 );
koch( g, depth, x1, y1, x3, y3 );
koch( g, depth, x3, y3, x2, y2 );
}
/**
* Rekursive Funktion, welche den Fraktal zwischen zwei Punkten bis zu einer
* bestimmten Tiefe zeichnet.
*
* @param g Graphik-Objekt, auf dem gezeichnet wird
* @param depth Rekursionstiefe
* @param x1 X-Koordinate des ersten Punktes
* @param y1 Y-Koordinate des ersten Punktes
* @param x2 X-Koordinate des zweiten Punktes
* @param y2 X-Koordinate des zweiten Punktes
*/
public void koch( Graphics g, int depth, double x1, double y1, double x2,
double y2 ) {
double x13 = x1 + ( x2 - x1 ) / 3.0;
double x23 = x1 + 2.0 * ( x2 - x1 ) / 3.0;
double y13 = y1 + ( y2 - y1 ) / 3.0;
double y23 = y1 + 2.0 * ( y2 - y1 ) / 3.0;
double xd = ( x23 - x13 ) * Math.cos( -Math.PI / 3 ) -
( y23 - y13 ) * Math.sin( -Math.PI / 3 ) + x13;
double yd = ( x23 - x13 ) * Math.sin( -Math.PI / 3 ) +
( y23 - y13 ) * Math.cos( -Math.PI / 3 ) + y13;
if ( depth > 0 ) {
koch( g, depth - 1, x1, y1, x13, y13 );
koch( g, depth - 1, x13, y13, xd, yd );
koch( g, depth - 1, xd, yd, x23, y23 );
koch( g, depth - 1, x23, y23, x2, y2 );
} else {
g.drawLine( (int) x1, (int) y1, (int) x2, (int) y2 );
}
}
/**
* The main program for the KochscheKurve class
*
* @param args The command line arguments
*/
public static void main( String[] args ) {
KochscheKurve graf = new KochscheKurve();
graf.setVisible( true );
graf.addWindowListener(
new WindowAdapter() {
public void windowClosing( WindowEvent e ) {
System.exit( 0 );
}
}
);
}
}
|
.: Rechnen mit CSS
Im Stylesheet dieser Seite findet sich unter anderem folgende Styledefinition: #rechts li a {
display: block;
border-bottom: 1px solid #FFFFFF;
width: 100% - 30px;
padding-left: 30px;
} Diese macht, dass die Links im rechten Submenu auf der ganzen Breite funktionieren und nicht nur wenn man auf den Text klickt. Zuerst hatte ich die Weite auf 100% gesetzt. Jedoch hat der Mozilla wegen der 30px Padding noch 30px ausserhalb des Rahmens angezeigt. Mit overflow: hidden habe ich versucht das Problem zu lösen. Jedoch hat das nicht funktioniert, da es ja kein eigentlicher overflow ist. Schlussendlich bin ich durch ausprobieren von garantiert fehlerhaften Styledefinitionen auf die jetztige Lösung gekommen. Natürlich validiert das nun nicht mehr als korrektes CSS, aber es funktioniert :-) Da ich nun keine Windows-Maschine mehr habe, wäre ich froh um Screenshots vom Submenu, wenn mit der Maus über ein Link gefahren wird (a:hover).
|