/Sketches/VectorLetters/data/additionalHaxeFilesToBeCopiedToProject/Main.hx

https://github.com/davidedc/P5Nitro · Haxe · 494 lines · 461 code · 22 blank · 11 comment · 4 complexity · 2d1e263ea30413c37bb10dc623ca47e2 MD5 · raw file

  1. // author: JLM at Justinfront
  2. import flash.display.MovieClip;
  3. import flash.display.Sprite;
  4. import flash.Lib;
  5. import flash.events.MouseEvent;
  6. class Main
  7. {
  8. // vector representations of the letters
  9. private var _h: List<List<Float>>;
  10. private var _a: List<List<Float>>;
  11. private var _x: List<List<Float>>;
  12. private var _e: List<List<Float>>;
  13. private var _stage: MovieClip;
  14. private var _view_mc: Sprite;
  15. private var _currMouseX: Float;
  16. private var _currMouseY: Float;
  17. public function new()
  18. {
  19. _stage = Lib.current;
  20. // create 'list' structures to hold vector data
  21. createHaXeData();
  22. createView();
  23. // draw coordinates to screen as defined in this array of letters
  24. drawLetters( [ _h, _a, _x, _e ] );
  25. // when mouse moves map vector data based on new mouse position.
  26. _view_mc.addEventListener( MouseEvent.MOUSE_MOVE, repos );
  27. }
  28. private function repos( e: MouseEvent ):Void
  29. {
  30. _currMouseX = _view_mc.mouseX;
  31. _currMouseY = _view_mc.mouseY;
  32. drawLetters( [
  33. Lambda.map( _h, reactToMouse ),
  34. Lambda.map( _a, reactToMouse ),
  35. Lambda.map( _x, reactToMouse ),
  36. Lambda.map( _e, reactToMouse )
  37. ]);
  38. }
  39. // create new positions based on old via a mapping using mouse position
  40. private function reactToMouse( origPos: List<Float> ):List<Float>
  41. {
  42. var pos: List<Float> = new List();
  43. var _x: Float = origPos.first();
  44. var _y: Float = origPos.last();
  45. if( _currMouseX > _x )
  46. {
  47. pos.add( _x - 100*Math.sqrt( Math.abs( _currMouseX - _x )/500 ) );
  48. }
  49. else
  50. {
  51. pos.add( _x + 100*Math.sqrt( Math.abs( _currMouseX - _x )/500 ) );
  52. }
  53. if( _currMouseY > _y )
  54. {
  55. pos.add( _y - 100*Math.sqrt( Math.abs( _currMouseY - _y )/500 ) );
  56. }
  57. else
  58. {
  59. pos.add( _y + 100*Math.sqrt( Math.abs( _currMouseY - _y )/500 ) );
  60. }
  61. return pos;
  62. }
  63. private function createView():Void
  64. {
  65. _view_mc = new Sprite();
  66. _view_mc.x = 100;
  67. _view_mc.y = 100;
  68. _stage.addChild( _view_mc );
  69. }
  70. private function drawLetters( letters: Array<List<List<Float>>> ):Void
  71. {
  72. _view_mc.graphics.clear();
  73. // draw a background
  74. _view_mc.graphics.beginFill(0xFFD541,1);
  75. _view_mc.graphics.moveTo(-70,-10);
  76. _view_mc.graphics.lineTo(350,-10);
  77. _view_mc.graphics.lineTo(350,170);
  78. _view_mc.graphics.lineTo(-70,170);
  79. // draw each letter
  80. for( aLetter in letters )
  81. {
  82. drawALetter( aLetter );
  83. }
  84. }
  85. private function drawALetter( letter: List<List<Float>> ):Void
  86. {
  87. _view_mc.graphics.beginFill(0xFD7D00,100);
  88. _view_mc.graphics.lineStyle(0,0xFD7D00, 0);
  89. var pos:List<Float> = letter.first();
  90. _view_mc.graphics.moveTo( pos.first(), pos.last() );
  91. for( pos in letter )
  92. {
  93. _view_mc.graphics.lineTo( pos.first(), pos.last() );
  94. }
  95. }
  96. public static function main(): Void { new Main(); }
  97. // Raw data ( created from MovieClip instance positions using traces in flash details not shown )
  98. // The example data is not important and in reality may come from XML rather than hard coded.
  99. private function createHaXeData():Void
  100. {
  101. _h = new List();
  102. _a = new List();
  103. _x = new List();
  104. _e = new List();
  105. // temp store of x and y coordinates as a list added to a list of points defining a letter
  106. var pos: List<Float>;
  107. pos = new List();
  108. pos.add(32.2);//x
  109. pos.add(46.35);//y
  110. _h.add( pos );
  111. pos = new List();
  112. pos.add(44.3);
  113. pos.add(46.6);
  114. _h.add( pos );
  115. pos = new List();
  116. pos.add(44.5);
  117. pos.add(73.35);
  118. _h.add( pos );
  119. pos = new List();
  120. pos.add(71.5);
  121. pos.add(73.35);
  122. _h.add( pos );
  123. pos = new List();
  124. pos.add(71.95);
  125. pos.add(46.6);
  126. _h.add( pos );
  127. pos = new List();
  128. pos.add(84.05);
  129. pos.add(46.6);
  130. _h.add( pos );
  131. pos = new List();
  132. pos.add(83.6);
  133. pos.add(114.9);
  134. _h.add( pos );
  135. pos = new List();
  136. pos.add(71.7);
  137. pos.add(115.15);
  138. _h.add( pos );
  139. pos = new List();
  140. pos.add(71);
  141. pos.add(84.5);
  142. _h.add( pos );
  143. pos = new List();
  144. pos.add(44.75);
  145. pos.add(84.3);
  146. _h.add( pos );
  147. pos = new List();
  148. pos.add(44.3);
  149. pos.add(115.15);
  150. _h.add( pos );
  151. pos = new List();
  152. pos.add(32.4);
  153. pos.add(114.9);
  154. _h.add( pos );
  155. pos = new List();
  156. pos.add(98.9);
  157. pos.add(67.4);
  158. _a.add( pos );
  159. pos = new List();
  160. pos.add(107.35);
  161. pos.add(64.4);
  162. _a.add( pos );
  163. pos = new List();
  164. pos.add(119.7);
  165. pos.add(64.4);
  166. _a.add( pos );
  167. pos = new List();
  168. pos.add(127.45);
  169. pos.add(66.95);
  170. _a.add( pos );
  171. pos = new List();
  172. pos.add(132.95);
  173. pos.add(73.35);
  174. _a.add( pos );
  175. pos = new List();
  176. pos.add(134.75);
  177. pos.add(81.55);
  178. _a.add( pos );
  179. pos = new List();
  180. pos.add(135.2);
  181. pos.add(103.5);
  182. _a.add( pos );
  183. pos = new List();
  184. pos.add(136.8);
  185. pos.add(109.65);
  186. _a.add( pos );
  187. pos = new List();
  188. pos.add(138.85);
  189. pos.add(111.7);
  190. _a.add( pos );
  191. pos = new List();
  192. pos.add(134.55);
  193. pos.add(115.15);
  194. _a.add( pos );
  195. pos = new List();
  196. pos.add(129.05);
  197. pos.add(115.35);
  198. _a.add( pos );
  199. pos = new List();
  200. pos.add(126.55);
  201. pos.add(113.05);
  202. _a.add( pos );
  203. pos = new List();
  204. pos.add(124.95);
  205. pos.add(109.9);
  206. _a.add( pos );
  207. pos = new List();
  208. pos.add(120.15);
  209. pos.add(113.75);
  210. _a.add( pos );
  211. pos = new List();
  212. pos.add(113.3);
  213. pos.add(115.8);
  214. _a.add( pos );
  215. pos = new List();
  216. pos.add(105.75);
  217. pos.add(115.35);
  218. _a.add( pos );
  219. pos = new List();
  220. pos.add(98.2);
  221. pos.add(111.7);
  222. _a.add( pos );
  223. pos = new List();
  224. pos.add(93.85);
  225. pos.add(104.4);
  226. _a.add( pos );
  227. pos = new List();
  228. pos.add(94.1);
  229. pos.add(95.5);
  230. _a.add( pos );
  231. pos = new List();
  232. pos.add(98.45);
  233. pos.add(87.95);
  234. _a.add( pos );
  235. pos = new List();
  236. pos.add(105.3);
  237. pos.add(83.85);
  238. _a.add( pos );
  239. pos = new List();
  240. pos.add(112.15);
  241. pos.add(81.8);
  242. _a.add( pos );
  243. pos = new List();
  244. pos.add(118.55);
  245. pos.add(81.55);
  246. _a.add( pos );
  247. pos = new List();
  248. pos.add(123.8);
  249. pos.add(82.45);
  250. _a.add( pos );
  251. pos = new List();
  252. pos.add(121.3);
  253. pos.add(76.5);
  254. _a.add( pos );
  255. pos = new List();
  256. pos.add(112.85);
  257. pos.add(73.8);
  258. _a.add( pos );
  259. pos = new List();
  260. pos.add(104.4);
  261. pos.add(75.15);
  262. _a.add( pos );
  263. pos = new List();
  264. pos.add(102.8);
  265. pos.add(76.05);
  266. _a.add( pos );
  267. pos = new List();
  268. pos.add(99.1);
  269. pos.add(67.4);
  270. _a.add( pos );
  271. pos = new List();
  272. pos.add(123.35);
  273. pos.add(91.6);
  274. _a.add( pos );
  275. pos = new List();
  276. pos.add(114.45);
  277. pos.add(90.9);
  278. _a.add( pos );
  279. pos = new List();
  280. pos.add(106.65);
  281. pos.add(94.35);
  282. _a.add( pos );
  283. pos = new List();
  284. pos.add(106);
  285. pos.add(103);
  286. _a.add( pos );
  287. pos = new List();
  288. pos.add(112.85);
  289. pos.add(106);
  290. _a.add( pos );
  291. pos = new List();
  292. pos.add(118.75);
  293. pos.add(105.75);
  294. _a.add( pos );
  295. pos = new List();
  296. pos.add(122.4);
  297. pos.add(102.1);
  298. _a.add( pos );
  299. pos = new List();
  300. pos.add(123.55);
  301. pos.add(96.4);
  302. _a.add( pos );
  303. pos = new List();
  304. pos.add(123.3);
  305. pos.add(91.8);
  306. _a.add( pos );
  307. pos = new List();
  308. pos.add(143.65);
  309. pos.add(46.35);
  310. _x.add( pos );
  311. pos = new List();
  312. pos.add(156.25);
  313. pos.add(46.35);
  314. _x.add( pos );
  315. pos = new List();
  316. pos.add(170.65);
  317. pos.add(69.65);
  318. _x.add( pos );
  319. pos = new List();
  320. pos.add(185.25);
  321. pos.add(46.35);
  322. _x.add( pos );
  323. pos = new List();
  324. pos.add(197.6);
  325. pos.add(46.35);
  326. _x.add( pos );
  327. pos = new List();
  328. pos.add(177.05);
  329. pos.add(79.95);
  330. _x.add( pos );
  331. pos = new List();
  332. pos.add(198.75);
  333. pos.add(114.9);
  334. _x.add( pos );
  335. pos = new List();
  336. pos.add(185.7);
  337. pos.add(115.15);
  338. _x.add( pos );
  339. pos = new List();
  340. pos.add(170.4);
  341. pos.add(90.45);
  342. _x.add( pos );
  343. pos = new List();
  344. pos.add(154.9);
  345. pos.add(115.35);
  346. _x.add( pos );
  347. pos = new List();
  348. pos.add(142.1);
  349. pos.add(114.9);
  350. _x.add( pos );
  351. pos = new List();
  352. pos.add(164.25);
  353. pos.add(79.95);
  354. _x.add( pos );
  355. pos = new List();
  356. pos.add(143.7);
  357. pos.add(46.35);
  358. _x.add( pos );
  359. pos = new List();
  360. pos.add(212);
  361. pos.add(69.2);
  362. _e.add( pos );
  363. pos = new List();
  364. pos.add(222.75);
  365. pos.add(64.2);
  366. _e.add( pos );
  367. pos = new List();
  368. pos.add(233.95);
  369. pos.add(64.65);
  370. _e.add( pos );
  371. pos = new List();
  372. pos.add(243.75);
  373. pos.add(69.2);
  374. _e.add( pos );
  375. pos = new List();
  376. pos.add(249.95);
  377. pos.add(78.8);
  378. _e.add( pos );
  379. pos = new List();
  380. pos.add(250.6);
  381. pos.add(90.45);
  382. _e.add( pos );
  383. pos = new List();
  384. pos.add(250.6);
  385. pos.add(92.95);
  386. _e.add( pos );
  387. pos = new List();
  388. pos.add(214.55);
  389. pos.add(93.45);
  390. _e.add( pos );
  391. pos = new List();
  392. pos.add(218.2);
  393. pos.add(102.1);
  394. _e.add( pos );
  395. pos = new List();
  396. pos.add(228);
  397. pos.add(106.2);
  398. _e.add( pos );
  399. pos = new List();
  400. pos.add(235.55);
  401. pos.add(105.1);
  402. _e.add( pos );
  403. pos = new List();
  404. pos.add(241.05);
  405. pos.add(102.1);
  406. _e.add( pos );
  407. pos = new List();
  408. pos.add(245.6);
  409. pos.add(110.8);
  410. _e.add( pos );
  411. pos = new List();
  412. pos.add(234.4);
  413. pos.add(115.35);
  414. _e.add( pos );
  415. pos = new List();
  416. pos.add(222.05);
  417. pos.add(115.6);
  418. _e.add( pos );
  419. pos = new List();
  420. pos.add(212);
  421. pos.add(111.7);
  422. _e.add( pos );
  423. pos = new List();
  424. pos.add(204.7);
  425. pos.add(103);
  426. _e.add( pos );
  427. pos = new List();
  428. pos.add(202.2);
  429. pos.add(93.45);
  430. _e.add( pos );
  431. pos = new List();
  432. pos.add(203.1);
  433. pos.add(82.9);
  434. _e.add( pos );
  435. pos = new List();
  436. pos.add(206.55);
  437. pos.add(75.15);
  438. _e.add( pos );
  439. pos = new List();
  440. pos.add(212);
  441. pos.add(69);
  442. _e.add( pos );
  443. pos = new List();
  444. pos.add(239.2);
  445. pos.add(84.3);
  446. _e.add( pos );
  447. pos = new List();
  448. pos.add(236);
  449. pos.add(76.75);
  450. _e.add( pos );
  451. pos = new List();
  452. pos.add(227.8);
  453. pos.add(74);
  454. _e.add( pos );
  455. pos = new List();
  456. pos.add(219.3);
  457. pos.add(76.75);
  458. _e.add( pos );
  459. pos = new List();
  460. pos.add(215);
  461. pos.add(84.3);
  462. _e.add( pos );
  463. pos = new List();
  464. pos.add(223.2);
  465. pos.add(84.3);
  466. _e.add( pos );
  467. pos = new List();
  468. pos.add(239.2);
  469. pos.add(84.3);
  470. _e.add( pos );
  471. }
  472. }