home *** CD-ROM | disk | FTP | other *** search
/ Education Sampler 1992 [NeXTSTEP] / Education_1992_Sampler.iso / Programming / Source / plot3d / plot3d.nib~ (.txt) < prev    next >
Encoding:
NeXT TypedStream Data  |  1992-08-18  |  16.8 KB  |  278 lines

  1. typedstream
  2. StreamTable
  3.     HashTable
  4. Object
  5. [20c]
  6. typedstream
  7. [1037c]
  8. typedstream
  9.     HashTable
  10. Object
  11. Expression
  12. HeaderClass
  13. %%%%i@@
  14. genericobject_nib
  15. Plot3DView
  16. /usr/include/sys/message.h
  17. viewnib
  18. controller
  19. grids
  20. zoom:
  21. togFreeze:
  22. setMode:
  23. PControl
  24. colorSel
  25. symsel
  26. ffSel
  27. dView
  28. equation
  29. d3View
  30.     readFile:
  31. zoomIn:
  32. stoPref:
  33. setMinMax:
  34. zoomOut:
  35. disPref:
  36. clearFile:
  37. FirstResponder
  38. firstnib
  39. checkSpelling:
  40. alignSelCenter:
  41.     unscript:
  42. pasteFont:
  43. runPageLayout:
  44. superscript:
  45. copyRuler:
  46.     copyFont:
  47. selectAll:
  48. pasteRuler:
  49. toggleRuler:
  50. showGuessPanel:
  51. alignSelLeft:
  52. paste:
  53. performClose:
  54. arrangeInFront:
  55. subscript:
  56. copy:
  57. alignSelRight:
  58. delete:
  59. orderFrontColorPanel:
  60. underline:
  61. performMiniaturize:
  62. DensView
  63. [16003c]
  64. typedstream
  65.     HashTable
  66. Object
  67. NibData
  68. @@@@s
  69. Storage
  70. {*@@}
  71.     [77{*@@}]
  72. File's Owner
  73. CustomObject
  74. Application
  75. MainMenu
  76. MenuTemplate
  77. *@*@ccc
  78. plot3d
  79. Matrix
  80. Control
  81.     Responder
  82. @:@iiii
  83. MenuCell
  84. ButtonCell
  85. ActionCell
  86.     Helvetica
  87. Info Panel...
  88. Help...
  89. Preferences...
  90. ff@@#::s
  91. submenuAction:
  92. Bitmap
  93.     menuArrow
  94. Paste
  95. Tools
  96.     Inspector
  97. Density
  98.     Colors...
  99. Print
  100. Page Layout
  101. Print 3D
  102. Print Density
  103. WindowTemplate
  104. iiii***@s@
  105. 3d view
  106. Window
  107. CustomView
  108. Plot3DView
  109. Panel
  110. FormCell
  111. MinX:
  112. MaxX:
  113. MinY:
  114. MaxY:
  115. MinZ:
  116. MaxZ:
  117. Field:
  118. Points:
  119. Zoom In
  120. Zoom Out
  121. Freeze
  122. Unfreeze
  123. NXImage
  124. NXradio
  125. NXradioH
  126. Radio
  127. Mouse
  128. MinY 
  129. MaxY$
  130. MinZ(
  131. MaxZ,
  132. Form14
  133. Points54
  134. ButtonB>
  135. Set 1
  136. OtherViews
  137. Set 2
  138. Set 3
  139. Set 4
  140. Set 5
  141.     PopUpLists
  142. popUp:
  143. popup
  144. NXColorWell
  145. Formula
  146. Symbol
  147. ScrollView
  148. ClipView
  149. ciifffcfffs
  150. [157c]{\rtf0\ansi{\fonttbl\f0\fswiss Helvetica;}
  151. \margl40
  152. \margr40
  153. \pard\tx960\tx1920\tx2880\tx3840\tx4800\tx5760\tx6720\tx7680\tx8640\tx9600\f0\b0\i0\ul0\fs24 
  154. NXCursor
  155. NXibeam
  156. Scroller
  157. _doScroller:
  158. @@@ffs
  159.     TextField
  160. TextFieldCell
  161. Z(x,y)=
  162. Button1sm
  163.     ColorWell
  164. Matrix1
  165. Button3
  166. ScrollingText
  167. Field2
  168. Plot 3d
  169. Steve Ludtke
  170. Version 1.1
  171. 2Copyright 1992, Steve Ludtke  All Rights Reserved.
  172. meicon
  173. Field1
  174. VersionNumber
  175. Field
  176. [8508c]{\rtf0\ansi{\fonttbl\f0\fswiss Helvetica;}
  177. \margl40
  178. \margr40
  179. \pard\tx960\tx1920\tx2880\tx3840\tx4800\tx5760\tx6720\tx7680\tx8640\tx9600\f0\b\i0\ul0\fs36 Plot3d Version 1.1\
  180. \b0\fs24 Copyright 1992  Steve Ludtke\
  181. This program is freeware. You may freely copy and redistribute it. Permission is granted to modify the source for your own purposes, but NOT to redistribute the modifications without permission of the author. If you use this program while doing scientific research, please cite this program in the acknowledements of any resulting publications. \
  182. There is absolutely no warrantee on this program. The author takes no responsibility for any damage caused by this program. The author takes no responsibilty for time lost if incorrect or misleading results are produced by this program. If a warrantee is required by law where you intend to use this software, permission to use this software there is revoked. \
  183. Now that that's out of the way, suggestions and bug reports would be greatly appreciated!! I can be contacted at any of the following :\
  184. steve@ion.rice.edu  or  ludtke@physics.rice.edu\
  185. 72335,1537  - compuserve\
  186. Steve Ludtke\
  187. Physics Dept.\
  188. Rice University\
  189. Houston, TX  77251-1892\
  190. \b\ul Changes since 1.0
  191. \b0\ul0 \
  192. Source included\
  193. Full mesh added (for functions only)\
  194. 3d view can be resized\
  195. Printing works better (still won't print "dots")\
  196. Alt and az displayed in 3d window\
  197. Zoom In and Freeze added\
  198. ln() changed to log() and log10() added\
  199. Formula input larger\
  200. Formulas can contain '[' and ']'  (treated like '(' and ')' )\
  201. Uppercase ok in functions, eg 'Sin(x)' is ok now\
  202. Fixed bug in expressions like : 'x+3.2'\
  203. Infinities/undefined results are dealt with gracefully.\
  204. \pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\b\ul Plans for the Future:\
  205. \b0\ul0 Get color to work (should be easy).\
  206. Fix density plot so there aren't holes when data is plotted.\
  207. Hidden line/dot removal (I know how to do it, it will just take some time ...)\
  208. Tic marks and/or a scale on the plot.\
  209. \pard\tx960\tx1920\tx2880\tx3840\tx4800\tx5760\tx6720\tx7680\tx8640\tx9600 Improvements to function parser (since I didn't write it,this can be tricky)\
  210. More flexible spinning options.\
  211. \b\ul \
  212. Introduction
  213. \b0\ul0 \
  214. There are a variety of programs on the NeXT that will generate nice, publication quality, 3d plots (Mathematica, gnuplot, etc ...)  However, there seems to be a lack of programs which allow real time interactive rotation and comparison of 3d data and formulas. Plot3d is an attempt to fill that gap.\
  215. The plots generated by plot3d aren't publication quality, and they aren't designed to be. The display algorithm used by plot3d is specifically designed for speed, not quality. While the NeXT is a pretty speedy machine, spinning 3d plots around on the screen in real time approaches the limits of it's capabilities. This program is especially good at doing quick plots to compare data with formulas, and to determine the best viewing angle to use with publication quality, but slower, programs.\
  216. \b\ul Using Plot3d
  217. \b0\ul0 \
  218. \b Spinning:
  219. \b0  Plot3d will start with a spinning sample function on the screen.  This will give you an opportunity to become accustomed to the interface. To control the viewing angle and spin of the plot, drag around the plot window with the mouse. If the pointer is still moving when you release the mouse button, the plot will continue to spin on the screen. To stop the spinning (and massively reduce the load on your NeXT), click the mouse without moving it. If you don't do this just right, the display may appear stationary, but still be spinning very slowly. If this is occuring the mouse pointer will appear to flicker slightly when it is over the 3d view, and your machine will appear unusually slow. Updates occur at up to 10 times per second, but with a large number of points this will be reduced considerably. Spinning only occurs in the azimuthal (x-y plane) angle, the altitude remains where you last left it.\
  220. \b Zooming:
  221. \b0  Changing MinX,MinY,MaxX or MaxY manually will cause a corresponding change in the visible region of the plot. You may also zoom in on a region of the plot using the mouse in zoom mode. It's a bit difficult to describe, but in mouse mode, the region is selected as if the plot were being viewed from directly overhead, no matter how it's currently oriented. Playing with it is the best way to understand what I'm trying to describe. Zoom out and zoom in are self-explanitory. The easiest way to zoom is to use the :\
  222. \b Density Plot:
  223. \b0 \
  224. To make zooming easier and to provide an alternate way to view the data, a density plot is provided. Obviously only one set at a time can be displayed on the density plot, so only the plot currently selected in the Inspector panel will be displayed. If the set is turned "off", the density plot will remain blank. The mouse mode does not affect the density plot. Dragging the mouse on the density plot will always cause zooming.\
  225. Both functions and files can be displayed in the density plot window, but you may need to play with the resolution to prevent 'holes' from appearing when files are viewed.\
  226. \b Resolution:
  227. \b0  The Points selector in the Control window allows you to select how many points in x and y to sample when plotting equations. Changing this parameter for data files will effect only the density plot, the 3d view will be unaffected.\
  228. \b Symbols:
  229. \b0  Plot3d can plot up to 5 simultaneous data sets.  Each set can use one of 7 different display styles (or be turned off). Most of the time required between updates on the display is taken by the actual drawing process. If the display begins to slow down, try using the dot or 1/2mesh symbols (they're the fastest to draw). You must click OK for a new symbol to take effect. The full mesh does not work on files.\
  230. \b Colors:
  231. \b0 \
  232. Unfortunately I only have access to a monochrome NeXT, so for the moment only greyscale "colors" can be used. There is a colorwell in the inspector window. You can bring up a color selector using the tools menu. Drag a color into the well on the inspector, then click OK to make it take effect. Any non-grey color will currently be mapped to its corresponding gray value.\
  233. \b Formulas/Files:
  234. \b0  Plot3d can plot both 3d data files and non parametric formulas. Formula parsing is done using Trey Matteson's Expression object (from the "graph" example in the extended release of 2.1). The parser currently supports the following expressions (more functions can be added upon request):\
  235. Variables x and y (sometimes z)\
  236. Numbers in normal, exponential, or radix (16#FE3, 2#11011) form\
  237. Simple operators +,-,*,/,% and ^. (% == modulus)\
  238. Parentheses and square brackets\
  239. Constants pi and e\
  240. Functions: sin(),cos(),tan(),asin(),acos(),sqrt(),.log(),log10(),exp() (log and exp are base e)\
  241. \pard\tx1340\tx6080 (more functions can be easily added if people tell me what they want)\
  242. I have tried to add a few things to make Mathematica and C style expressions more acceptible to plot3d. Square brackets now work, and capitalization in function names is now ok. pow(x,y) is still not valid, and whitespace is not interpreted as multiplication. If you have any specific suggestions on things I should add/change to increase compatibility, let me know.\
  243. \pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320 Selecting "file" will bring up an Open Panel. Files must be in "x y z\\n" or "x,y,z\\n" format with optional comment lines at the top of the file beginning with #. If the selected file cannot be read, "formula" will automatically be reselected. Once the data is read, x/y/z max/min values will be set to match the file. Data from the file is NOT interpolated, so if you zoom, the data will not be mapped to a new grid, it will just be clipped. \
  244. Data from files may also be transformed before being displayed. You may enter a formula as a function of x,y and z to remap the data. When the file is read, the formula is automatically reset to z(x,y)=z. So, for example, if you want a log plot, just enter "log(z)" as the formula. If you enter an invalid formula it will be reset to "0". \
  245. Suggestions and/or comments would be greatly appreciated. If I don't hear from people, I will assume that nobody's using it, and stop working on it. It's already at a level sufficient for my own use, so if you'd like something changed, let me know !!!\
  246.                                         --steve@ion.rice.edu
  247. Density Plot
  248. DensView
  249. PControl
  250. {i*@@@}
  251. [49{i*@@@}]
  252. hide:
  253. terminate:
  254. copy:
  255. paste:
  256. zoom:4
  257. grids
  258. makeKeyAndOrderFront:
  259. orderFrontColorPanel:
  260. setMode:P
  261. disPref:{
  262.     readFile:
  263. clearFile:
  264. stoPref:
  265. setMinMax:
  266. d3View
  267. dView
  268. symsel
  269. colorSel
  270. ffSel
  271. controller
  272. zoomOut:B
  273. zoomIn:@
  274. togFreeze:D
  275. runPageLayout:
  276. smartPrintPSCode:
  277. equation
  278.