home *** CD-ROM | disk | FTP | other *** search
/ NeXT Education Software Sampler 1992 Fall / NeXT Education Software Sampler 1992 Fall.iso / Programming / Source / plot3d / plot3d.nib (.txt) < prev    next >
Encoding:
NeXT TypedStream Data  |  1992-08-18  |  16.7 KB  |  281 lines

  1. typedstream
  2. StreamTable
  3.     HashTable
  4. Object
  5. [20c]
  6. typedstream
  7. [1051c]
  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. delegate
  64. image
  65. [15956c]
  66. typedstream
  67.     HashTable
  68. Object
  69. NibData
  70. @@@@s
  71. Storage
  72. {*@@}
  73.     [77{*@@}]
  74. File's Owner
  75. CustomObject
  76. Application
  77. MainMenu
  78. MenuTemplate
  79. *@*@ccc
  80. plot3d
  81. Matrix
  82. Control
  83.     Responder
  84. @:@iiii
  85. MenuCell
  86. ButtonCell
  87. ActionCell
  88.     Helvetica
  89. Info Panel...
  90. Help...
  91. Preferences...
  92. ff@@#::s
  93. submenuAction:
  94. Bitmap
  95.     menuArrow
  96. Paste
  97. Tools
  98.     Inspector
  99. Density
  100.     Colors...
  101. Print
  102. Page Layout
  103. Print 3D
  104. Print Density
  105. WindowTemplate
  106. iiii***@s@
  107. 3d view
  108. Window
  109. CustomView
  110. Plot3DView
  111. Panel
  112. FormCell
  113. MinX:
  114. MaxX:
  115. MinY:
  116. MaxY:
  117. MinZ:
  118. MaxZ:
  119. Field:
  120. Points:
  121. Zoom In
  122. Zoom Out
  123. Freeze
  124. Unfreeze
  125. NXImage
  126. NXradio
  127. NXradioH
  128. Radio
  129. Mouse
  130. MinY 
  131. MaxY$
  132. MinZ(
  133. MaxZ,
  134. Form14
  135. Points54
  136. ButtonB>
  137. Set 1
  138. OtherViews
  139. Set 2
  140. Set 3
  141. Set 4
  142. Set 5
  143.     PopUpLists
  144. popUp:
  145. popup
  146. NXColorWell
  147. Formula
  148. Symbol
  149. ScrollView
  150. ClipView
  151. ciifffcfffs
  152. [108c]{\rtf0\ansi{\fonttbl\f0\fswiss Helvetica;}
  153. \margl40
  154. \margr40
  155. \f0\b0\i0\ul0\ql\fs24\fi0\li0\gray0\up0\dn0 
  156. NXCursor
  157. NXibeam
  158. Scroller
  159. _doScroller:
  160. @@@ffs
  161.     TextField
  162. TextFieldCell
  163. Z(x,y)=
  164. Button1sm
  165.     ColorWell
  166. Matrix1
  167. Button3
  168. ScrollingText
  169. Field2
  170. Plot 3d
  171. Steve Ludtke
  172. Version 1.1
  173. 2Copyright 1992, Steve Ludtke  All Rights Reserved.
  174. meicon
  175. Field1
  176. VersionNumber
  177. Field
  178. [8508c]{\rtf0\ansi{\fonttbl\f0\fswiss Helvetica;}
  179. \margl40
  180. \margr40
  181. \pard\tx960\tx1920\tx2880\tx3840\tx4800\tx5760\tx6720\tx7680\tx8640\tx9600\f0\b\i0\ul0\fs36 Plot3d Version 1.1\
  182. \b0\fs24 Copyright 1992  Steve Ludtke\
  183. 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. \
  184. 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. \
  185. 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 :\
  186. steve@ion.rice.edu  or  ludtke@physics.rice.edu\
  187. 72335,1537  - compuserve\
  188. Steve Ludtke\
  189. Physics Dept.\
  190. Rice University\
  191. Houston, TX  77251-1892\
  192. \b\ul Changes since 1.0
  193. \b0\ul0 \
  194. Source included\
  195. Full mesh added (for functions only)\
  196. 3d view can be resized\
  197. Printing works better (still won't print "dots")\
  198. Alt and az displayed in 3d window\
  199. Zoom In and Freeze added\
  200. ln() changed to log() and log10() added\
  201. Formula input larger\
  202. Formulas can contain '[' and ']'  (treated like '(' and ')' )\
  203. Uppercase ok in functions, eg 'Sin(x)' is ok now\
  204. Fixed bug in expressions like : 'x+3.2'\
  205. Infinities/undefined results are dealt with gracefully.\
  206. \pard\tx520\tx1060\tx1600\tx2120\tx2660\tx3200\tx3720\tx4260\tx4800\tx5320\b\ul Plans for the Future:\
  207. \b0\ul0 Get color to work (should be easy).\
  208. Fix density plot so there aren't holes when data is plotted.\
  209. Hidden line/dot removal (I know how to do it, it will just take some time ...)\
  210. Tic marks and/or a scale on the plot.\
  211. \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)\
  212. More flexible spinning options.\
  213. \b\ul \
  214. Introduction
  215. \b0\ul0 \
  216. 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.\
  217. 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.\
  218. \b\ul Using Plot3d
  219. \b0\ul0 \
  220. \b Spinning:
  221. \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.\
  222. \b Zooming:
  223. \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 :\
  224. \b Density Plot:
  225. \b0 \
  226. 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.\
  227. 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.\
  228. \b Resolution:
  229. \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.\
  230. \b Symbols:
  231. \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.\
  232. \b Colors:
  233. \b0 \
  234. 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.\
  235. \b Formulas/Files:
  236. \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):\
  237. Variables x and y (sometimes z)\
  238. Numbers in normal, exponential, or radix (16#FE3, 2#11011) form\
  239. Simple operators +,-,*,/,% and ^. (% == modulus)\
  240. Parentheses and square brackets\
  241. Constants pi and e\
  242. Functions: sin(),cos(),tan(),asin(),acos(),sqrt(),.log(),log10(),exp() (log and exp are base e)\
  243. \pard\tx1340\tx6080 (more functions can be easily added if people tell me what they want)\
  244. 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.\
  245. \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. \
  246. 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". \
  247. 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 !!!\
  248.                                         --steve@ion.rice.edu
  249. Density Plot
  250. DensView
  251. PControl
  252. {i*@@@}
  253. [49{i*@@@}]
  254. hide:
  255. terminate:
  256. copy:
  257. paste:
  258. zoom:4
  259. grids
  260. makeKeyAndOrderFront:
  261. orderFrontColorPanel:
  262. setMode:P
  263. disPref:{
  264.     readFile:
  265. clearFile:
  266. stoPref:
  267. setMinMax:
  268. d3View
  269. dView
  270. symsel
  271. colorSel
  272. ffSel
  273. controller
  274. zoomOut:B
  275. zoomIn:@
  276. togFreeze:D
  277. runPageLayout:
  278. smartPrintPSCode:
  279. equation
  280. delegate
  281.