This is FFTView.m in view mode; [Download] [Up]
/* Generated by Interface Builder */ #import "FFTView.h" #import "dpsclient/wraps.h" @implementation FFTView - neueWerte:(float *)werte { int i; for(i=0;i<POINTS;i++) aktWerte[i] = werte[i]; [self display]; DPSFlush(); return self; } - initFrame:(const NXRect *)frameRect { int i; float xstart, xstep; [super initFrame:frameRect]; [self setClipping:NO]; [self allocateGState]; xstep = frameRect->size.width / POINTS; xstart = frameRect->origin.x + xstep / 8.0; for (i = 0 ; i < POINTS; i++) { aktWerte[i] = 0.0; myRects[i].origin.x = xstart + i * xstep; myRects[i].origin.y = frameRect->origin.y; myRects[i].size.width = xstep * 3.0/4.0; } return self; } - drawSelf: (NXRect *) rects : (int) count { int i; float xstart, xstep; PSsetgray (NX_LTGRAY); NXRectFill (&bounds); PSsetgray (NX_BLACK); xstep = bounds.size.width / POINTS; xstart = bounds.origin.x + xstep / 8.0; for(i = 0; i < POINTS; i++) { myRects[i].origin.x = xstart + i * xstep; myRects[i].origin.y = bounds.origin.y; myRects[i].size.width = xstep * 3.0/4.0; myRects[i].size.height = (log10 (aktWerte[i]))*.8 * bounds.size.height; // Test mit Minimum ein Pixel if (myRects[i].size.height < 1.0) myRects[i].size.height = 1.0; if (myRects[i].size.height >= bounds.size.height) myRects[i].size.height = bounds.size.height - 2.0; } NXRectFillList(myRects, POINTS); return self; } @end
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.