home *** CD-ROM | disk | FTP | other *** search
/ Gold Fish 3 / goldfish_volume_3.bin / files / gfx / 3d / irit / scripts / interpol.irt < prev    next >
Encoding:
Text File  |  1995-03-14  |  7.8 KB  |  317 lines

  1. #
  2. # Interpolation/least square approximation of curves and surfaces.
  3. #
  4. #                    Gershon Elber, March 1994
  5. #
  6. #############################################################################
  7.  
  8. save_mat = view_mat;
  9.  
  10. view_mat = scale( vector( 0.6, 0.6, 0.6 ) );
  11. viewobj( view_mat );
  12. viewstate("FinrAprx");
  13.  
  14. #############################################################################
  15. pl1 = list( point(-0.5,-0.5, 0.0 ),
  16.         point( 0.7, 0.5, 0.1 ),
  17.         point(-0.2,-0.5, 0.2 ),
  18.         point( 0.9, 0.5, 0.3 ),
  19.         point( 0.1,-0.5, 0.4 ) );
  20.  
  21. c1 = cinterp( pl1, 3, 3, PARAM_UNIFORM );
  22. interact( list( c1, pl1 ) );
  23.  
  24. c1 = cinterp(  pl1, 3, 4, PARAM_UNIFORM );
  25. interact( list( c1, pl1 ) );
  26.  
  27. c1 = cinterp(  pl1, 3, 5, PARAM_UNIFORM );
  28. interact( list( c1, pl1 ) );
  29.  
  30. c1 = cinterp(  pl1, 4, 4, PARAM_UNIFORM );
  31. interact( list( c1, pl1 ) );
  32.  
  33. c1 = cinterp(  pl1, 4, 0, PARAM_UNIFORM );
  34. interact( list( c1, pl1 ) );
  35.  
  36. c1 = cinterp(  pl1, 5, 5, PARAM_UNIFORM );
  37. interact( list( c1, pl1 ) );
  38.  
  39. #############################################################################
  40.  
  41. pl2 = nil();
  42. for ( x = 0, 1, 20,
  43.     snoc(point(x / 10 - 1, sin(x * Pi / 5), 0.0), pl2)
  44.     );
  45.  
  46. c2 = cinterp( pl2, 3, 5, PARAM_UNIFORM );
  47. interact( list( c2, pl2 ) );
  48.  
  49. c2 = cinterp( pl2, 3, 7, PARAM_UNIFORM );
  50. interact( list( c2, pl2 ) );
  51.  
  52. c2 = cinterp( pl2, 3, 10, PARAM_UNIFORM );
  53. interact( list( c2, pl2 ) );
  54.  
  55. c2 = cinterp( pl2, 4, 5, PARAM_UNIFORM );
  56. interact( list( c2, pl2 ) );
  57.  
  58. c2 = cinterp( pl2, 4, 7, PARAM_UNIFORM );
  59. interact( list( c2, pl2 ) );
  60.  
  61. c2 = cinterp( pl2, 4, 10, PARAM_UNIFORM );
  62. interact( list( c2, pl2 ) );
  63.  
  64. c2 = cinterp( pl2, 10, 10, PARAM_UNIFORM );
  65. interact( list( c2, pl2 ) );
  66.  
  67. #############################################################################
  68.  
  69. view_mat = roty(30) * rotx(50) * scale( vector( 0.5, 0.5, 0.5 ) );
  70. viewobj(view_mat);
  71.  
  72. pl3 = nil();
  73. for ( x = 0, 1, 20,
  74.     snoc(point((x / 10 - 1) * cos(x),
  75.            (x / 10 - 1) * sin(x),
  76.            x / 10 - 1), pl3)
  77.     );
  78.  
  79. c3 = cinterp( pl3, 3, 5, PARAM_UNIFORM );
  80. interact( list( c3, pl3 ) );
  81.  
  82. c3 = cinterp( pl3, 3, 10, PARAM_UNIFORM );
  83. interact( list( c3, pl3 ) );
  84.  
  85. c3 = cinterp( pl3, 3, 21, PARAM_UNIFORM );
  86. interact( list( c3, pl3 ) );
  87.  
  88. c3 = cinterp( pl3, 5, 5, PARAM_UNIFORM );
  89. interact( list( c3, pl3 ) );
  90.  
  91. c3 = cinterp( pl3, 5, 10, PARAM_UNIFORM );
  92. interact( list( c3, pl3 ) );
  93.  
  94. c3 = cinterp( pl3, 5, 21, PARAM_UNIFORM );
  95. interact( list( c3, pl3 ) );
  96.  
  97. #############################################################################
  98.  
  99. pl4 = nil();
  100. for ( x = 0, 1, 100,
  101.     snoc(point(cos(x / 5), sin(x / 5), x / 50 - 1), pl4)
  102.     );
  103.  
  104. c4 = cinterp( pl4, 3, 5, PARAM_UNIFORM );
  105. interact( list( c4, pl4 ) );
  106.  
  107. c4 = cinterp( pl4, 3, 10, PARAM_UNIFORM );
  108. interact( list( c4, pl4 ) );
  109.  
  110. c4 = cinterp( pl4, 3, 21, PARAM_UNIFORM );
  111. interact( list( c4, pl4 ) );
  112.  
  113. c4 = cinterp( pl4, 5, 5, PARAM_UNIFORM );
  114. interact( list( c4, pl4 ) );
  115.  
  116. c4 = cinterp( pl4, 5, 10, PARAM_UNIFORM );
  117. interact( list( c4, pl4 ) );
  118.  
  119. c4 = cinterp( pl4, 5, 21, PARAM_UNIFORM );
  120. interact( list( c4, pl4 ) );
  121.  
  122. #############################################################################
  123.  
  124. view_mat = scale( vector( 0.7, 0.7, 0.7 ) );
  125. viewobj( view_mat );
  126.  
  127. pl5 = nil();
  128. for ( x = 0, 1, 4,
  129.     t = (x / 2) - 1:
  130.     snoc(point(t * t * t, t * t * t * t * t, 0.0), pl5)
  131.     );
  132.  
  133. c5a = cinterp( pl5, 3, 3, PARAM_UNIFORM );
  134. color(c5a, magenta);
  135. c5b = cinterp( pl5, 3, 3, PARAM_CHORD );
  136. color(c5b, red);
  137. c5c = cinterp( pl5, 3, 3, PARAM_CENTRIP );
  138. color(c5c, cyan);
  139. interact( list( c5a, c5b, c5c, pl5 ) );
  140.  
  141. c5a = cinterp( pl5, 3, 4, PARAM_UNIFORM );
  142. color(c5a, magenta);
  143. c5b = cinterp( pl5, 3, 4, PARAM_CHORD );
  144. color(c5b, red);
  145. c5c = cinterp( pl5, 3, 4, PARAM_CENTRIP );
  146. color(c5c, cyan);
  147. interact( list( c5a, c5b, c5c, pl5 ) );
  148.  
  149. c5a = cinterp( pl5, 3, 5, PARAM_UNIFORM );
  150. color(c5a, magenta);
  151. c5b = cinterp( pl5, 3, 5, PARAM_CHORD );
  152. color(c5b, red);
  153. c5c = cinterp( pl5, 3, 5, PARAM_CENTRIP );
  154. color(c5c, cyan);
  155. interact( list( c5a, c5b, c5c, pl5 ) );
  156.  
  157. #############################################################################
  158.  
  159. view_mat = scale( vector( 0.7, 0.7, 0.7 ) );
  160. viewobj( view_mat );
  161.  
  162. cbzr = cbezier( list( ctlpt( E3, -0.5,  0.7,  0.2 ),
  163.               ctlpt( E3, -0.3, -0.8,  1.0 ),
  164.               ctlpt( E3,  0.1, -0.9, -2.0 ),
  165.               ctlpt( E3,  0.3,  0.9,  1.0 ),
  166.               ctlpt( E3,  0.6,  0.1,  0.1 ) ) );
  167. color( cbzr, green );
  168.  
  169. pl6 = nil();
  170. for ( x = 0, 1, 4,
  171.     snoc(ceval(cbzr, x / 4), pl6)
  172.     );
  173.  
  174. c6a = cinterp( pl6, 3, 3, PARAM_UNIFORM );
  175. color(c6a, magenta);
  176. c6b = cinterp( pl6, 3, 3, PARAM_CHORD );
  177. color(c6b, red);
  178. c6c = cinterp( pl6, 3, 3, PARAM_CENTRIP );
  179. color(c6c, cyan);
  180. interact( list( cbzr, c6a, c6b, c6c, pl6 ) );
  181.  
  182. c6a = cinterp( pl6, 3, 4, PARAM_UNIFORM );
  183. color(c6a, magenta);
  184. c6b = cinterp( pl6, 3, 4, PARAM_CHORD );
  185. color(c6b, red);
  186. c6c = cinterp( pl6, 3, 4, PARAM_CENTRIP );
  187. color(c6c, cyan);
  188. interact( list( cbzr, c6a, c6b, c6c, pl6 ) );
  189.  
  190. c6a = cinterp( pl6, 3, 5, PARAM_UNIFORM );
  191. color(c6a, magenta);
  192. c6b = cinterp( pl6, 3, 5, PARAM_CHORD );
  193. color(c6b, red);
  194. c6c = cinterp( pl6, 3, 5, PARAM_CENTRIP );
  195. color(c6c, cyan);
  196. interact( list( cbzr, c6a, c6b, c6c, pl6 ) );
  197.  
  198. c6a = cinterp( pl6, 5, 5, PARAM_UNIFORM );
  199. color(c6a, magenta);
  200. c6b = cinterp( pl6, 5, 5, PARAM_CHORD );
  201. color(c6b, red);
  202. c6c = cinterp( pl6, 5, 5, PARAM_CENTRIP );
  203. color(c6c, cyan);
  204. interact( list( cbzr, c6a, c6b, c6c, pl6 ) );
  205.  
  206. #############################################################################
  207. iritState("EchoSource", false);
  208. include("gersktch");
  209. iritState("EchoSource", true);
  210. color(gershon, red);
  211.  
  212. gershon_a = cinterp( gershon, 3, 3, PARAM_UNIFORM );
  213. color(gershon_a, green);
  214. interact( list( gershon, gershon_a ) );
  215.  
  216. gershon_b = cinterp( gershon, 3, 6, PARAM_UNIFORM );
  217. color(gershon_b, green);
  218. interact( list( gershon, gershon_b ) );
  219.  
  220. gershon_c = cinterp( gershon, 3, 12, PARAM_UNIFORM );
  221. color(gershon_c, green);
  222. interact( list( gershon, gershon_c ) );
  223.  
  224. gershon_d = cinterp( gershon, 3, 24, PARAM_UNIFORM );
  225. color(gershon_d, green);
  226. interact( list( gershon, gershon_d ) );
  227.  
  228. gershon_e = cinterp( gershon, 3, 48, PARAM_UNIFORM );
  229. color(gershon_e, green);
  230. interact( list( gershon, gershon_e ) );
  231.  
  232. gershon_f = cinterp( gershon, 3, 96, PARAM_UNIFORM );
  233. color(gershon_f, green);
  234. interact( list( gershon, gershon_f ) );
  235.  
  236. #############################################################################
  237.  
  238. view_mat = rotz(50) * rotx(-60) * scale( vector( 0.2, 0.2, 0.2 ) );
  239. viewobj(view_mat);
  240.  
  241. pl = nil();
  242. pll = nil();
  243. for ( x = -5, 1, 5,
  244.       pl = nil():
  245.       for ( y = -5, 1, 5,
  246.         snoc(point(x,
  247.                y,
  248.                sin(x * Pi / 2) * cos(y * Pi / 2)),
  249.          pl)
  250.       ):
  251.       snoc(pl, pll) );
  252.  
  253. s1 = sinterp( pll, 3, 3, 3, 3, PARAM_UNIFORM );
  254. interact(list(pll, s1));
  255.  
  256. s1 = sinterp( pll, 3, 3, 0, 0, PARAM_UNIFORM );
  257. interact(list(pll, s1));
  258.  
  259. s1 = sinterp( pll, 3, 3, 4, 11, PARAM_UNIFORM );
  260. interact(list(pll, s1));
  261.  
  262. s1 = sinterp( pll, 3, 3, 11, 4, PARAM_UNIFORM );
  263. interact(list(pll, s1));
  264.  
  265. #############################################################################
  266.  
  267. view_mat = rotz(50) * rotx(-60) * scale( vector( 0.7, 0.7, 0.7 ) );
  268. viewobj(view_mat);
  269.  
  270. pl = nil();
  271. pll = nil();
  272. for ( x = -5, 1, 5,
  273.       pl = nil():
  274.       xx = x * Pi / 10:
  275.       for ( y = -5, 1, 5,
  276.         yy = y * Pi / 5:
  277.         snoc(point(cos(xx)*cos(yy),
  278.                cos(xx)*sin(yy),
  279.                sin(xx)),
  280.          pl)
  281.       ):
  282.       snoc(pl, pll) );
  283.  
  284. s2 = sinterp( pll, 3, 3, 11, 11, PARAM_UNIFORM );
  285. interact(list(pll, s2));
  286.  
  287. s2 = sinterp( pll, 3, 3, 6, 6, PARAM_UNIFORM );
  288. interact(list(pll, s2));
  289.  
  290. #############################################################################
  291.  
  292. pl = nil();
  293. pll = nil();
  294. for ( x = -10, 1, 10,
  295.       pl = nil():
  296.       xx = x * Pi / 20:
  297.       for ( y = -10, 1, 10,
  298.         yy = y * Pi / 10:
  299.         snoc(point(cos(xx)^3 * cos(yy)^3,
  300.                sin(xx)^3 * cos(yy)^3,
  301.                sin(yy)^3),
  302.          pl)
  303.       ):
  304.       snoc(pl, pll) );
  305.  
  306. s3 = sinterp( pll, 3, 3, 21, 21, PARAM_UNIFORM );
  307. interact(list(pll, s3));
  308.  
  309. s3 = sinterp( pll, 3, 3, 11, 11, PARAM_UNIFORM );
  310. interact(list(pll, s3));
  311.  
  312. #############################################################################
  313.  
  314.  
  315. viewclear();
  316. view_mat = save_mat;
  317.