Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!utgpu!water!watmath!clyde!rutgers!ames!ucbcad!ucbvax!ADS.ARPA!Info-Graphics-Request From: Info-Graphics-Request@ADS.ARPA.UUCP Newsgroups: comp.graphics.digest Subject: Info-Graphics Digest Message-ID: <8706141159.AA23115@ucbvax.Berkeley.EDU> Date: Sun, 14-Jun-87 06:00:34 EDT Article-I.D.: ucbvax.8706141159.AA23115 Posted: Sun Jun 14 06:00:34 1987 Date-Received: Sun, 14-Jun-87 22:04:27 EDT Sender: daemon@ucbvax.BERKELEY.EDU Reply-To: Info-Graphics@ADS.ARPA Distribution: world Organization: The ARPA Internet Lines: 507 Approved: info-graphics@ads.arpa Info-Graphics Digest Sun Jun 14 03:00:35 PDT 1987 - Send submissions to Info-Graphics@ADS.ARPA - Send requests for list membership to Info-Graphics-Request@ADS.ARPA Today's Topics: Drawing Contour Maps Ray Tracing Raster Technologies One/380 Lecture in San Francisco 18-Jun-87: HISTORY OF COMPUTER GRAPHICS Survey: Microcomputers in Graphics Education Contour plots [C PROGRAM SOURCE] ---------------------------------------------------------------------- Date: 8 Jun 1987 15:19:10-WET From: malcolm Hello , Does anyone out there know of the existence of a Tekronix 4010 emulator for a PC compatible. It must be public domain, I have seen a few around and tried them out, but they don't seem to like my PC, an OPUS II with CGA card in it. Thankyoueversomuch, Malcolm John Taylor Polytechnic of Central London 115 New Cavendish St London W1M 8JS Try these addresses :- malcolm%uk.ac.pcl.lynx@ukacrl.bitnet BITNET malcolm%ib.rl.ac.uk EARN malcolm%uk.ac.pcl.lynx@cs.ucl.ac.uk ARPA mcvax!ukc!uk.ac.pcl.lynx!malcolm UUCP ------------------------------ Date: Mon, 8 Jun 87 20:19:27 ADT From: Kevin Marinelli Subject: Drawing Contour Maps Organization: Dept. of Math., Stats & C.S., Dalhousie University, Halifax, N.S., Canada This is not an optimal solution, but... The last issue of BYTE has a set of BASIC subroutines for drawing contour maps on a PC. This program shouls be easily modified to meet your needs. If this does not work, let me know, and I will dig up some FORTRAN source code and mail it to you. The point is, try it first from the BASIC to see how it works. That way you will learn the many limitations of using computers to contour data. (i.e. contour maps drawn by a computer are not gospel. It follows the GIGO principle very closely). Kevin Marinelli Academic Computing Services Dalhousie University ------------------------------ Date: Tue, 9 Jun 87 15:13:34 CDT From: Kent Michael White Subject: Ray Tracing The Center For Advanced Computer Studies at the University of Southwestern Louisiana presently has a small research group that is interested in ray tracing algorithms. We are wanting to confer with other research groups concerning new ray tracing techniques. Please respond directly to me kmw@usl.usl.edu since I do not currently receive mod.graphics. ------------------------------ Date: Tue, 19 May 87 08:47 EDT From: Subject: Raster Technologies One/380 We have just recieved the 87 edition of Movie.byu with the interface to the Raster Tech one/20. That's all fine and dandy, but we have a Raster Tech One/380. Does anyone out there have an interface to the Raster Tech one/380 for movie.byu that they would be willing to share? We currently have the One/380 connected DMA to a VMS VAX 11/780. Mike Begeman Medical College of Ohio ------------------------------ Date: Tue, 9 Jun 87 17:46:19 PDT From: Info-Graphics-Request@ADS.arpa (Andy Cromarty) Subject: Lecture in San Francisco 18-Jun-87: HISTORY OF COMPUTER GRAPHICS From siggraph@ames-pioneer.arpa Fri Jun 5 15:59:41 1987 Path: ads!siggraph From: siggraph@ames-pioneer.arpa Subject: 6/18 6PM Joint Golden Gate/BA ACM/SIGGRAPH Chapters, Hist. of CG Message-ID: <28392@ads.ARPA> Date: 5 Jun 87 22:59:41 GMT Sender: daemon@ads.ARPA Lines: 40 Status: RO From: Siggraph Joint Golden Gate Chapter ACM and Bay Area ACM/SIGGRAPH HISTORY OF COMPUTER GRAPHICS A Biased Personal View Alvy Ray Smith Vice President Pixar Thursday June 18 Exploratorium, McBean Theater 3601 Lyon Street, SF 6:00..7:00 Cocktails and Hors D'oeuvres 7:00..8:00 Speaker & Q/A Please call (415)-339-3024 by June 11 if you would like to make reservations (recommended) for hors d'oeuvres ($10). ABSTRACT - The dark ages of black-and-white lines at NYU. How the University of Utah did it with no equipment. How Xerox PARC kissed off color graphics but got an Emmy anyway. How Alex Schure met Ivan Sutherland and begat NYIT. How Evans & Sutherland succeeded & failed. How Siggraph grew up. The sad story of standards. The amazing stories of NYIT: Los Ricos National Forest, "make Tubby dance", Holloway house. Who said, "Our goal is to speed up time, eventually deleting it"? David Em unmasked (the M is revealed). Jim Blinn dances. Video art vs computer graphics. How Lucasfilm happened. Star Trek. Star Wars. Ravi Shankar. Steven Spielberg. Sylvester Stallone. Special effects. Do you remember III, DP, Abel, Omnibus, Digital Effects, MAGI? What Pixar means. How it feels to spin off. Luxo Lamps and Academy Awards. How is JCGL related to CGL? The Japanese and Europeans. How the Texas Panhandle contributed to graphics. A glimpse at the future. And lots, lots more. ------------------------------ Date: Wed, 3 Jun 1987 21:46:31 EDT From: (William J. Joel) Subject: Survey: Microcomputers in Graphics Education Status: RO Please look at the survey below and determine whether it would be appropriate for a separate edition of Info-Graphics to cover just this survey. I had sent it out recently to 250 institutions world wide, but only got 38 back. I could use more responses to make the survey more substantial. In any event, I'd like IG readers to be able to get this survey. Thanks! --------------------------------------------------------------------- Hi! The following survey is intended for computer graphics instructors. If you are such a person, I would appreciate it if you would print out the survey, answer it and send it to the address listed below. Please make sure your name, institution, division/department, and title are listed somewhere on the returned survey. Thank you for your help! ----- CUT HERE ----- 1 - - Survey of + Survey of 0 Microcomputers in + Microcomputers in 0 Undergraduate Computer Graphics Curriculum + Undergraduate Computer Graphics Curriculum - The following survey has been designed to determine the rea- sons for and the extent of the use of microcomputers in under- graduate computer graphics curriculum. If you are not the prima- ry graphics contact at your institution, please forward this survey to that person. 0 Please return this survey to: 0 William J. Joel Division of Computer Science & Mathematics Marist College 82 North Road Poughkeepsie, NY 12601 USA 0 Thank you! Your help in this survey is most appreciated. 1 0 Survey of page 2 DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD - 1. Indicate the number of each type of microcomputer for each category. Use the last three blanks for any micros not listed. Any micros that could be counted in more than one columns should be so counted. 0 Microcomputer Avaialble to Available to ------------- all students graphics stud To be acquired ------------- ------------ ------------- -------------- IBM PC/XT _____ _____ _____ IBM AT _____ _____ _____ IBM RT _____ _____ _____ Apple IIe/+/GS _____ _____ _____ Apple Mac/Lisa _____ _____ _____ Amiga _____ _____ _____ Tandy _____ _____ _____ Commodore _____ _____ _____ ____________ _____ _____ _____ ____________ _____ _____ _____ ____________ _____ _____ _____ 0 2. Check the three (3) microcomputer attributes most appropri- ate for each column, as they relate to use in a computer graphics course. DO NOT check more or less than three for each column. 0 Attribute Most Least Reason for Reason for --------- beneficial beneficial prior future --------- ---------- ---------- acquisition acquistion --------- ---------- ---------- ----------- ---------- resolution _____ _____ _____ _____ no. of colors _____ _____ _____ _____ no. of bit planes _____ _____ _____ _____ amount of memory (RAM) _____ _____ _____ _____ floppy disks _____ _____ _____ _____ hard disks _____ _____ _____ _____ peripheral connections _____ _____ _____ _____ portability _____ _____ _____ _____ size _____ _____ _____ _____ cost _____ _____ _____ _____ software _____ _____ _____ _____ operating system _____ _____ _____ _____ languages _____ _____ _____ _____ CPU _____ _____ _____ _____ 1 0 Survey of page 3 DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD - 3. Check the three (3) computer graphics topics most appropri- ate for each column, as they relate to computer graphics curriculum. DO NOT check more or less than three. 0 Topic Least Most ----- emphasized emphasized ----- ---------- ---------- 2-D basics _____ _____ 3-D basics _____ _____ hidden line/surface removal _____ _____ shading _____ _____ ray tracing _____ _____ solid modelling _____ _____ animation _____ _____ fractals _____ _____ business graphics _____ _____ ____________ _____ _____ ____________ _____ _____ ____________ _____ _____ 0 4. Do you feel that microcomputers are useful in a computer graphics education? 0 (Circle one) Yes No Undecided ------------------------------ Date: Thu, 11 Jun 87 14:47:58 EDT From: ucbcad!ames!seismo!mimsy!aplcen!aplvax!LOCAL.arpa!djs@ucbvax.Berkeley.EDU (David J. Scheerer) Subject: Contour plots [C PROGRAM SOURCE] Organization: The Johns Hopkins University Applied Physics Laboratory Status: RO This is a preliminary C routine to contour plot a regular matrix generated from a equation. I use the SUN's GRAPH & PLOT to plot 'em out. #define PI 3.141592654 #include int iub, jub, nc; float d[31][31], x[31], y[31], z[10]; main() { int i, j; float ix, jy; float r; iub = 30; jub = 30; nc = 10; for (i = 0; i <= iub; ++i) { ix = 2 * PI * (2*i-iub)/iub; for (j = 0; j <= jub; ++j) { jy = 2 * PI * (2 * j - jub)/jub; r = sqrt(ix * ix + jy * jy); d[i][j] = sin(r) + .5/sqrt( (ix+3.05)*(ix+3.05) + jy*jy); } x[i] = i; } for (j = 0; j <= jub; ++j) y[j] = j; for (i = 0; i <= nc-1; ++i) z[i] = (float)(i - 5)/5; contour(); } contour() { /* INPUT VARIABLES TO CONTOUR */ extern int iub; /* the number of discrete intervals in the horizontal measuerement grid */ extern int jub; /* the number of discrete intervals in the vertical meausrement grid */ extern float d[][31]; /* two dimensional array containing the z values for each (x,y) pair */ extern float x[]; /* one dimensional array containing the actual horizontal coordinates of each sample point */ extern float y[]; /* one dimensional array containing the actual vertical coordinates of each sample point */ extern int nc; /* the number of contouring levels */ extern float z[]; /* one dimensional array containing the contour levels in increasing order */ /* VARIABLES LOCAL TO CONTOUR */ float h[5]; /* relative heights of the four corners of the box above the contour */ int ish[5]; /* sign of h( ) 2 => above contour, 1=> on contour, 0 => below contour*/ float xh[5]; /* x coordinates of four corners of box */ float yh[5]; /* y coordinates of four corners of box */ static int im[4] = {0, 1, 1, 0}; /* mapping from vertex numbers to x offsets */ static int jm[4] = {0, 0, 1, 1}; /* mapping from vertex numbers to y offsets */ int prmerr; /* input parameter error 0 => no error, 1 => error */ static int castab[3][3][3] = { /* case switch table */ { {0,0,8}, {0,2,5}, {7,6,9} }, { {0,3,4}, {1,3,1}, {4,3,0} }, { {9,6,7}, {5,2,0}, {8,0,0} } }; float dmin; /* lowest vertex */ float dmax; /* highest vertex */ int case_num; int i, j, k, m; /* loop indices */ int m1, m2, m3; float x1, y1, x2, y2; /* coordinates of points to be connected to draw contour segment */ /* check the input parameters for validity */ prmerr = 0; if (iub <= 0 || jub <= 0) prmerr = 1; if (nc <= 0) prmerr = 1; for (k = 1; k <= nc-1; ++k) if (z[k] <= z[k-1]) prmerr = 1; if (prmerr) { printf("error in input parameters\n"); return; } /* scan the array, top down, left to right */ for (j = jub-1; j >= 0; --j) { for (i = 0; i <= iub - 1; ++i) { /* find the lowest vertex */ dmin = (d[i][j] < d[i][j+1])? d[i][j]: d[i][j+1]; if (d[i+1][j] < dmin) dmin = d[i+1][j]; if (d[i+1][j+1] < dmin) dmin = d [i+1][j+1]; /* find the highest vertex */ dmax = (d[i][j] > d[i][j+i])? d[i][j]: d[i][j+1]; if (d[i+1][j] > dmax) dmax = d[i+1][j]; if (d[i+1][j+1] > dmax) dmax = d[i+1][j+1]; if (dmax >= z[0] || dmin <= z[nc-1]) { /* draw each contour within this box */ for (k = 0; k <= nc-1; ++k) { if (z[k] >= dmin || z[k] <= dmax) { for (m = 4; m >= 0; --m) { if (m > 0) { h[m] = d[i + im[m-1]][j + jm[m-1]] - z[k]; xh[m] = x[i + im[m-1]]; yh[m] = y[j + jm[m-1]]; } if (m == 0) { h[0] = (h[1] + h[2] + h[3] + h[4]) / 4; xh[0] = (x[i] + x[i+1]) / 2; yh[0] = (y[j] + y[j+1]) / 2; } if (h[m] > 0) ish[m] = 2; else if (h[m] < 0) ish[m] = 0; else ish[m] = 1; } /* scan each triangle in the box */ for (m = 1; m <= 4; ++m) { m1 = m; m2 = 0; m3 = m + 1; if (m3 == 5) m3 = 1; case_num = castab[ish[m1]][ish[m2]][ish[m3]]; if (case_num == 0) continue; switch (case_num) { case 1: /* line between vertices m1 and m2 */ x1 = xh[m1]; y1 = yh[m1]; x2 = xh[m2]; y2 = yh[m2]; break; case 2: /* line between vertices m2 and m3 */ x1 = xh[m2]; y1 = yh[m2]; x2 = xh[m3]; y2 = yh[m3]; break; case 3: /* line between vertices m3 and m1 */ x1 = xh[m3]; y1 = yh[m3]; x2 = xh[m1]; y2 = yh[m1]; break; case 4: /* line between vertex m1 and side m2-m3 */ x1 = xh[m1]; y1 = yh[m1]; x2 = (h[m3] * xh[m2] - h[m2] * xh[m3]) / (h[m3] - h[m2]); y2 = (h[m3] * yh[m2] - h[m2] * yh[m3]) / (h[m3] - h[m2]); break; case 5: /* line between vertex m2 and side m3-m1 */ x1 = xh[m2]; y1 = yh[m2]; x2 = (h[m1] * xh[m3] - h[m3] * xh[m1]) / (h[m1] - h[m3]); y2 = (h[m1] * yh[m3] - h[m3] * yh[m1]) / (h[m1] - h[m3]); break; case 6: /* line between vertex m3 and side m1-m2 */ x1 = xh[m3]; y1 = yh[m3]; x2 = (h[m2] * xh[m1] - h[m1] * xh[m2]) / (h[m2] - h[m1]); y2 = (h[m2] * yh[m1] - h[m1] * yh[m2]) / (h[m2] - h[m1]); break; case 7: /* line between sides m1-m2 and m2-m3 */ x1 = (h[m2] * xh[m1] - h[m1] * xh[m2]) / (h[m2] - h[m1]); y1 = (h[m2] * yh[m1] - h[m1] * yh[m2]) / (h[m2] - h[m1]); x2 = (h[m3] * xh[m2] - h[m2] * xh[m3]) / (h[m3] - h[m2]); y2 = (h[m3] * yh[m2] - h[m2] * yh[m3]) / (h[m3] - h[m2]); break; case 8: /* line between sides m2-m3 and m3-m1 */ x1 = (h[m3] * xh[m2] - h[m2] * xh[m3]) / (h[m3] - h[m2]); y1 = (h[m3] * yh[m2] - h[m2] * yh[m3]) / (h[m3] - h[m2]); x2 = (h[m1] * xh[m3] - h[m3] * xh[m1]) / (h[m1] - h[m3]); y2 = (h[m1] * yh[m3] - h[m3] * yh[m1]) / (h[m1] - h[m3]); break; case 9: /* line between sides m3-m1 and m1-m2 */ x1 = (h[m1] * xh[m3] - h[m3] * xh[m1]) / (h[m1] - h[m3]); y1 = (h[m1] * yh[m3] - h[m3] * yh[m1]) / (h[m1] - h[m3]); x2 = (h[m2] * xh[m1] - h[m1] * xh[m2]) / (h[m2] - h[m1]); y2 = (h[m2] * yh[m1] - h[m1] * yh[m2]) / (h[m2] - h[m1]); break; } drawit: printf("%6.2f %6.2f\n", x1, y1); printf("%6.2f %6.2f\n", x2, y2); printf("\"); } /* bottom of m loop */ } /* bottom of inner if */ } /* bottom of k loop */ } /* bottom of outer if */ } /* bottom of i loop */ } /* bottom of j loop */ } /* bottom of contour subroutine */ ------------------------------ End of INFO-GRAPHICS ********************