Advertisement
Guest User

lollypop

a guest
Nov 16th, 2014
359
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.05 KB | None | 0 0
  1. <style>
  2. body {cursor:"crosshair"; color:#00FF00; background-color:#000000;}
  3. </style>
  4. <script>
  5.  
  6. var npunkt = new Array();
  7. function dreh_x(punkt,winkel)
  8. {
  9. if(winkel!=0)
  10. {
  11. var z = punkt["z"];
  12. var y = punkt["y"];
  13. var Z= Math.cos(Math.atan2(y,z)+winkel)*Math.sqrt(y*y+z*z);
  14. var Y= Math.sin(Math.atan2(y,z)+winkel)*Math.sqrt(y*y+z*z);
  15. npunkt["x"] = punkt["x"];
  16. npunkt["y"] = Y;
  17. npunkt["z"] = Z;
  18. return(npunkt);
  19. }else
  20. {
  21. return(punkt)
  22. }
  23. }
  24.  
  25. function dreh_y(punkt,winkel)
  26. {
  27. if(winkel!=0)
  28. {
  29. var z = punkt["z"];
  30. var x = punkt["x"];
  31. var Z= Math.cos(Math.atan2(x,z)+winkel)*Math.sqrt(x*x+z*z);
  32. var X= Math.sin(Math.atan2(x,z)+winkel)*Math.sqrt(x*x+z*z);
  33. npunkt["x"] = X;
  34. npunkt["y"] = punkt["y"];
  35. npunkt["z"] = Z;
  36. return(npunkt);
  37. }else
  38. {
  39. return(punkt)
  40. }
  41. }
  42.  
  43. function dreh_z(punkt,winkel)
  44. {
  45. if(winkel!=0)
  46. {
  47. var x = punkt["x"];
  48. var y = punkt["y"];
  49. var X= Math.cos(Math.atan2(y,x)+winkel)*Math.sqrt(x*x+y*y);
  50. var Y= Math.sin(Math.atan2(y,x)+winkel)*Math.sqrt(x*x+y*y);
  51. npunkt["x"] = X
  52. npunkt["y"] = Y
  53. npunkt["z"] = punkt["z"];
  54. return(npunkt);
  55. }else
  56. {
  57. return(punkt)
  58. }
  59. }
  60.  
  61. function drehen(punkt,x,y,z)
  62. {
  63. npunkt = dreh_x(punkt,x);
  64. npunkt = dreh_y(npunkt,y);
  65. npunkt = dreh_z(npunkt,z);
  66. npunkt["name"] = punkt["name"];
  67. alle_punkte[punkt["stelle"]]["x"] = npunkt["x"];
  68. alle_punkte[punkt["stelle"]]["y"] = npunkt["y"];
  69. alle_punkte[punkt["stelle"]]["z"] = npunkt["z"];
  70. alle_punkte[punkt["stelle"]]["name"] = npunkt["name"];
  71. }
  72.  
  73. var alle_punkte = new Array();
  74. function neuer_punkt(x,y,z)
  75. {
  76. var neu = alle_punkte.length;
  77. alle_punkte[neu] = new Array();
  78. alle_punkte[neu]["x"]=x;
  79. alle_punkte[neu]["y"]=y;
  80. alle_punkte[neu]["z"]=z;
  81. alle_punkte[neu]["stelle"]=neu; //stelle im array -> wichtig zu werte-zurückschreiben
  82. alle_punkte[neu]["name"]="p" + neu;
  83. document.all["inhalt"].innerHTML += "<span id='p"+neu+"' class='p"+neu+"'>"+symbol+"</span>";
  84. document.all["p"+neu].style.position = "absolute";
  85. darstellen(alle_punkte[neu]);
  86. document.all["zahl"].innerHTML = alle_punkte.length;
  87. }
  88.  
  89. function wuerfel()
  90. {
  91. neuer_punkt(0,0,0);
  92. neuer_punkt(5000,5000,5000);
  93. neuer_punkt(0,5000,5000);
  94. neuer_punkt(5000,0,5000);
  95. neuer_punkt(-5000,-5000,5000);
  96. neuer_punkt(-5000,0,5000);
  97. neuer_punkt(0,-5000,5000);
  98. neuer_punkt(-5000,5000,5000);
  99. neuer_punkt(5000,-5000,5000);
  100. neuer_punkt(5000,5000,0);
  101. neuer_punkt(-5000,-5000,0);
  102. neuer_punkt(-5000,5000,0);
  103. neuer_punkt(5000,-5000,0);
  104. neuer_punkt(5000,5000,-5000);
  105. neuer_punkt(0,5000,-5000);
  106. neuer_punkt(5000,0,-5000);
  107. neuer_punkt(-5000,-5000,-5000);
  108. neuer_punkt(-5000,0,-5000);
  109. neuer_punkt(0,-5000,-5000);
  110. neuer_punkt(-5000,5000,-5000);
  111. neuer_punkt(5000,-5000,-5000);
  112. }
  113.  
  114. function wuerfel2()
  115. {
  116. neuer_punkt(0,0,0);
  117. neuer_punkt(5,5,5);
  118. neuer_punkt(0,5,5);
  119. neuer_punkt(5,0,5);
  120. neuer_punkt(-5,-5,5);
  121. neuer_punkt(-5,0,5);
  122. neuer_punkt(0,-5,5);
  123. neuer_punkt(-5,5,5);
  124. neuer_punkt(5,-5,5);
  125. neuer_punkt(5,5,0);
  126. neuer_punkt(-5,-5,0);
  127. neuer_punkt(-5,5,0);
  128. neuer_punkt(5,-5,0);
  129. neuer_punkt(5,5,-5);
  130. neuer_punkt(0,5,-5);
  131. neuer_punkt(5,0,-5);
  132. neuer_punkt(-5,-5,-5);
  133. neuer_punkt(-5,0,-5);
  134. neuer_punkt(0,-5,-5);
  135. neuer_punkt(-5,5,-5);
  136. neuer_punkt(5,-5,-5);
  137. }
  138.  
  139. function kreuz()
  140. {
  141. neuer_punkt(0,0,0);
  142. neuer_punkt(0,0,10);
  143. neuer_punkt(0,0,20);
  144. neuer_punkt(0,0,30);
  145. neuer_punkt(0,0,40);
  146. neuer_punkt(0,0,-10);
  147. neuer_punkt(0,0,-20);
  148. neuer_punkt(0,0,-30);
  149. neuer_punkt(0,0,-40);
  150. neuer_punkt(0,0,-50);
  151. neuer_punkt(0,0,50);
  152. neuer_punkt(0,-50,0);
  153. neuer_punkt(0,50,0);
  154. neuer_punkt(-50,0,0);
  155. neuer_punkt(50,0,0);
  156. neuer_punkt(0,10,0);
  157. neuer_punkt(0,20,0);
  158. neuer_punkt(0,30,0);
  159. neuer_punkt(0,40,0);
  160. neuer_punkt(0,-10,0);
  161. neuer_punkt(0,-20,0);
  162. neuer_punkt(0,-30,0);
  163. neuer_punkt(0,-40,0);
  164. neuer_punkt(10,0,0);
  165. neuer_punkt(20,0,0);
  166. neuer_punkt(30,0,0);
  167. neuer_punkt(40,0,0);
  168. neuer_punkt(-10,0,0);
  169. neuer_punkt(-20,0,0);
  170. neuer_punkt(-30,0,0);
  171. neuer_punkt(-40,0,0);
  172. }
  173.  
  174. function kugel(n,radius)
  175. {
  176. var N=n;
  177. var M=0;
  178. neuer_punkt(0,0,0);
  179. while(N>=0)
  180. {
  181. neuer_punkt(Math.sin(M)*radius*Math.sin(Math.PI*N/n),Math.cos(M)*radius*Math.sin(Math.PI*N/n),Math.cos(Math.PI*N/n)*radius);
  182. N--;
  183. M+=0.5;
  184. }
  185. }
  186.  
  187. var h=0.5;
  188. var v=0.5;
  189.  
  190. function darstellen(punkt) //schräge parallelperspektive
  191. {
  192. document.all[punkt["name"]].style.pixelLeft = punkt["x"] - h*punkt["z"] + rx;
  193. document.all[punkt["name"]].style.pixelTop = punkt["y"] + v*punkt["z"] + ry;
  194. document.all[punkt["name"]].style.fontSize = Math.abs(20 + punkt["z"]/4);
  195. }
  196.  
  197. function alle_neu_ausrichten()
  198. {
  199. var nummer = alle_punkte.length - 1;
  200. while(nummer>=0)
  201. {
  202. darstellen(alle_punkte[nummer]);
  203. nummer--;
  204. }
  205. }
  206.  
  207. function alle_drehen(wx,wy,wz)
  208. {
  209. var nummer = alle_punkte.length - 1;
  210. while(nummer>=0)
  211. {
  212. drehen(alle_punkte[nummer],wx,wy,wz);
  213. nummer--;
  214. }
  215. alle_neu_ausrichten();
  216. }
  217.  
  218. var bx=0.05,by=-0.05,Timer;
  219. function beweg_dich()
  220. {
  221. alle_drehen(bx,by,bz);
  222. timer1 = setTimeout("beweg_dich()",2);
  223. var Timer="true"
  224. }
  225.  
  226. function erfasse()
  227. {
  228. var mausx = window.event.offsetX;
  229. var mausy = window.event.offsetY;
  230. by = Math.round(0.15*Math.sin(Math.atan2(mausx-rx,ry))*100)/100;
  231. bx = Math.round(0.15*Math.cos(Math.atan2(rx,mausy-ry))*100)/100;
  232. }
  233.  
  234. function zuruecksetzen()
  235. {
  236. if(Timer)
  237. {
  238. clearTimeout(timer1);
  239. Timer=false;
  240. }
  241. alle_punkte = new Array();
  242. document.all["inhalt"].innerHTML="|";
  243. document.all["zahl"].innerHTML = "0";
  244. }
  245.  
  246. function loadme()
  247. {
  248. beweg_dich();
  249. wuerfel();
  250.  
  251. }
  252.  
  253. //Hier der Punkt(0,0,0) des Koordinatensytems relativ zur Seite!
  254. var rx = 800;
  255. var ry = 600;
  256. var bz = 0.15; //Rotation um die Z-Achse (max. 0.15)
  257. var symbol="*";
  258. </script>
  259. </head>
  260. <body onmousemove="erfasse();" onload="loadme();">
  261.  
  262. <div id="inhalt"></div>
  263.  
  264. <form>
  265. <input type=button value="kreuz();" onclick="kreuz();"><br>
  266. <input type=button value="wuerfel();" onclick="wuerfel();"><br>
  267. <input type=button value="kugel(n,radius);" onclick="kugel(500,70);"><br>
  268. <input type=button value="zurücksetzen();" onclick="zuruecksetzen();"></form>
  269. Es sind <span id="zahl">0</span> Punkte dargestellt.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement