VOIROL@rcgl1.eng.ohio-state.edu (Voirol, Philippe) (07/13/89)
I am having big trouble adding a graphical output to a simulation program ( in Pascal ) I am working on . (I am working with THINK Pascal 2.01 on a MacII) MY QUESTIONS : (see example program below for terminology) 1) The data to be plot comes from the program in type DOUBLE and I convert it into Fixed using Convert() but I am getting sometimes a bug dialog saying ADDRESS ERROR. What's wrong ? 2) More annoying: I adapted the InitGraphics part from the box drawing demo program which comes with TML but it is apparently not suited to the THINK environment because the machine crashes *BADLY* most of the time. I suspect a dangling pointer somewhere , I dont understand that business with GPort1 and GPort2 ... So could somebody out there tell me how to safely interface Graf3D with the Drawing window port in LSP AtDhVaAnNkCsE Philippe e-mail : voirol%RCGL1@eng.ohio-state.edu Follows an example program showing what I was trying to do : (*--------------------------------------------------------------*) program example; var GPort1: GrafPort;GPort2: Port3D;myPort: GrafPtr; myPort3D, thePort3D: Port3DPtr;data: double; procedure InitGraphics; begin InitGrf3D(@thePort3D);GetPort(myPort); myPort3D := @GPort2;Open3DPort(myPort3D); ViewPort(myPort^.portRect); LookAt(wleft, wtop, wright, wbottom);{and set roll,pitch,etc...} end;{InitGraphics} function Convert (x: double): Fixed;const c = 65536;scal = 10; begin Convert := Fixed(round(c * scal * x)) end; begin{main} InitGraphics; repeat {update data...} Draw3D(Convert(data)); until done; end. Philippe Voirol e-mail : voirol%rcgl1@eng.ohio-state.edu