Nos, igy.
http://www.sg.hu/galeria/1291739216/12917392161293727052.gif
void line(int x,int y,int x2,int y2,int szin)
{
XSetForeground(dpy,gc,szin);
XDrawLine(dpy, w, gc, x,y,x2,y2);
}
struct struct_vektor
{
float x,y;
};
typedef struct struct_vektor vektor;
int main()
{
dpy = XOpenDisplay((0));
w = XCreateSimpleWindow(dpy, DefaultRootWindow(dpy), 0,0, 800, 600, 0,0,0);
XSelectInput(dpy, w, StructureNotifyMask);
XMapWindow(dpy, w);
gc = XCreateGC(dpy, w, 0, (0));
XSetForeground(dpy,gc,0);
for(;;) { XEvent e; XNextEvent(dpy, &e); if (e.type == MapNotify)break; }
int x,y,x2,u;
float dx,dy,tav,min=1e8;
float hullamhossz=M_PI/0.15;
float hullamhossz2=hullamhossz;
vektor A,B;
A.x=50;
A.y=50;
B.x=600;
B.y=170;
#if 1
B.x=600; B.y=420;
hullamhossz2=M_PI/0.1;
#endif
for(x=0;x<1000;x+=8)
{
y=300;
komplex amp;
amp.valos=0;
amp.kepzetes=0;
for(u=-10;u<11;u++)
{
dx=A.x-(x+(float)u/10);
dy=A.y-y;
tav=sqrt(dx*dx+dy*dy)*hullamhossz;
dx=B.x-(x+(float)u/10);
dy=B.y-y;
tav+=sqrt(dx*dx+dy*dy)*hullamhossz2;
amp.valos+=cos(tav)/21;
amp.kepzetes+=sin(tav)/21;
}
amp=szorzas(amp,konjugalt(amp));
amp.valos*=amp.valos;
int szin=(int)(amp.valos*255);
// szin=255;
line(x,y,(int)A.x,(int)A.y,szin<<8);
line(x,y,(int)B.x,(int)B.y,szin<<8);
{
dx=A.x-x;
dy=A.y-y;
tav=sqrt(dx*dx+dy*dy)*hullamhossz;
dx=B.x-x;
dy=B.y-y;
tav+=sqrt(dx*dx+dy*dy)*hullamhossz2;
if(tav<min) {min=tav;x2=x;}
int v=600-(int)(tav/100);
pont(x,v,0xff00);
}
}
int v=600-(int)(min/100);
line(0,v,800,v,0xff00);
line(x2,0,x2,800,0xff00);
XFlush(dpy);
getchar();
}