A complex algebraic plane curve is the set of complex solutions to a polynomial equation f(x, y)=0. This is a 1 complex dimensional subset of C2, or in more conventional terms it is a surface living in a space of 4 real dimensions. These objects are also called Riemann surfaces, at least away from the singularities. The study of these objects and their generalizations within algebraic geometry involves a lot of technical material, and it is easy to forget that this is geometry. So I've put together a small picture gallery, with just enough theory to explain how to make them. More systematic treatments can be found in the references given below.
P := (x,y) -> WeierstrassP(x + y*I,1,0);The hyperbolic tiling in the last section was created using David Joyce's applet. This document was produced by using TeXht to convert latex to html, and then hand editing the html file.
PP := (x,y) -> WeierstrassPPrime(x + y*I,1,0);
IR := (theta, z) -> cos(theta)*Re(z) + sin(theta)*Im(z);
Gr1 := theta -> plot3d([Re(P(x,y)), Im(P(x,y)), 0.3*IR(theta,PP(x,y))] , x=0..3.74,y=0..3.74, color=[sin(2*Pi*x/3.74), 0.5, sin(2*Pi*y/3.74)], view=[-1..1,-1..1, -1..1], grid=[35,35]);
L1 := theta -> spacecurve([Re(P(x,1.854)), Im(P(x,1.854)), 0.3*IR(theta,PP(x,1.854))] , x=0..3.74, color=red, thickness=2);
L2 := theta -> spacecurve([Re(P(x,0)), Im(P(x,0)), 0.3*IR(theta, PP(x,0))] , x=1..2.7, color=red, thickness=2);
L3 := theta->spacecurve([Re(P(1.854,y)), Im(P(1.854,y)), 0.3*IR(theta,PP(1.854,y))] , y=0..3.74, color=yellow, thickness=2);
Gr := theta-> display({Gr1(theta) , L1(theta),L2(theta),L3(theta)});