index.html 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
  2. "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  3. <html>
  4. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
  5. <head>
  6. <title>Delaunay</title>
  7. <link rel="stylesheet" href="ldoc.css" type="text/css" />
  8. </head>
  9. <body>
  10. <div id="container">
  11. <div id="product">
  12. <div id="product_logo"></div>
  13. <div id="product_name"><big><b></b></big></div>
  14. <div id="product_description"></div>
  15. </div> <!-- id="product" -->
  16. <div id="main">
  17. <!-- Menu -->
  18. <div id="navigation">
  19. <br/>
  20. <h1>delaunay</h1>
  21. <h2>Contents</h2>
  22. <ul>
  23. <li><a href="#Class_Edge">Class Edge </a></li>
  24. <li><a href="#Class_Point">Class Point </a></li>
  25. <li><a href="#Class_Triangle">Class Triangle </a></li>
  26. <li><a href="#Delaunay_module">Delaunay module </a></li>
  27. </ul>
  28. <h2>Scripts</h2>
  29. <ul class="$(kind=='Topics' and '' or 'nowrap'">
  30. <li><strong>delaunay</strong></li>
  31. </ul>
  32. </div>
  33. <div id="content">
  34. <h1>Script <code>delaunay</code></h1>
  35. <p>
  36. <h2>Delaunay, Lua module for convex polygon triangulation</h2>
  37. </p>
  38. <p>
  39. </p>
  40. <h3>Info:</h3>
  41. <ul>
  42. <li><strong>Copyright</strong>: 2013-2016</li>
  43. <li><strong>License</strong>: MIT</li>
  44. <li><strong>Author</strong>: Roland Yonaba</li>
  45. </ul>
  46. <h2><a href="#Class_Edge">Class Edge </a></h2>
  47. <table class="function_list">
  48. <tr>
  49. <td class="name" nowrap><a href="#Edge:new">Edge:new (p1, p2)</a></td>
  50. <td class="summary">Creates a new <a href="index.html#Edge">Edge</a></td>
  51. </tr>
  52. <tr>
  53. <td class="name" nowrap><a href="#Edge:same">Edge:same (otherEdge)</a></td>
  54. <td class="summary">Test if <code>otherEdge</code> is similar to self.</td>
  55. </tr>
  56. <tr>
  57. <td class="name" nowrap><a href="#Edge:length">Edge:length ()</a></td>
  58. <td class="summary">Returns the length.</td>
  59. </tr>
  60. <tr>
  61. <td class="name" nowrap><a href="#Edge:getMidPoint">Edge:getMidPoint ()</a></td>
  62. <td class="summary">Returns the midpoint coordinates.</td>
  63. </tr>
  64. </table>
  65. <h2><a href="#Class_Point">Class Point </a></h2>
  66. <table class="function_list">
  67. <tr>
  68. <td class="name" nowrap><a href="#Point:new">Point:new (x, y)</a></td>
  69. <td class="summary">Creates a new <a href="index.html#Point">Point</a></td>
  70. </tr>
  71. <tr>
  72. <td class="name" nowrap><a href="#Point:dist2">Point:dist2 (p)</a></td>
  73. <td class="summary">Returns the square distance to another <a href="index.html#Point">Point</a>.</td>
  74. </tr>
  75. <tr>
  76. <td class="name" nowrap><a href="#Point:dist">Point:dist (p)</a></td>
  77. <td class="summary">Returns the distance to another <a href="index.html#Point">Point</a>.</td>
  78. </tr>
  79. <tr>
  80. <td class="name" nowrap><a href="#Point:isInCircle">Point:isInCircle (cx, cy, r)</a></td>
  81. <td class="summary">Checks if self lies into the bounds of a circle</td>
  82. </tr>
  83. </table>
  84. <h2><a href="#Class_Triangle">Class Triangle </a></h2>
  85. <table class="function_list">
  86. <tr>
  87. <td class="name" nowrap><a href="#Triangle:new">Triangle:new (p1, p2, p3)</a></td>
  88. <td class="summary">Creates a new <a href="index.html#Triangle">Triangle</a></td>
  89. </tr>
  90. <tr>
  91. <td class="name" nowrap><a href="#Triangle:isCW">Triangle:isCW ()</a></td>
  92. <td class="summary">Checks if the triangle is defined clockwise (sequence p1-p2-p3)</td>
  93. </tr>
  94. <tr>
  95. <td class="name" nowrap><a href="#Triangle:isCCW">Triangle:isCCW ()</a></td>
  96. <td class="summary">Checks if the triangle is defined counter-clockwise (sequence p1-p2-p3)</td>
  97. </tr>
  98. <tr>
  99. <td class="name" nowrap><a href="#Triangle:getSidesLength">Triangle:getSidesLength ()</a></td>
  100. <td class="summary">Returns the length of the edges</td>
  101. </tr>
  102. <tr>
  103. <td class="name" nowrap><a href="#Triangle:getCenter">Triangle:getCenter ()</a></td>
  104. <td class="summary">Returns the coordinates of the center</td>
  105. </tr>
  106. <tr>
  107. <td class="name" nowrap><a href="#Triangle:getCircumCircle">Triangle:getCircumCircle ()</a></td>
  108. <td class="summary">Returns the coordinates of the circumcircle center and its radius</td>
  109. </tr>
  110. <tr>
  111. <td class="name" nowrap><a href="#Triangle:getCircumCenter">Triangle:getCircumCenter ()</a></td>
  112. <td class="summary">Returns the coordinates of the circumcircle center</td>
  113. </tr>
  114. <tr>
  115. <td class="name" nowrap><a href="#Triangle:getCircumRadius">Triangle:getCircumRadius ()</a></td>
  116. <td class="summary">Returns the radius of the circumcircle</td>
  117. </tr>
  118. <tr>
  119. <td class="name" nowrap><a href="#Triangle:getArea">Triangle:getArea ()</a></td>
  120. <td class="summary">Returns the area</td>
  121. </tr>
  122. <tr>
  123. <td class="name" nowrap><a href="#Triangle:inCircumCircle">Triangle:inCircumCircle (p)</a></td>
  124. <td class="summary">Checks if a given point lies into the triangle circumcircle</td>
  125. </tr>
  126. </table>
  127. <h2><a href="#Delaunay_module">Delaunay module </a></h2>
  128. <table class="function_list">
  129. <tr>
  130. <td class="name" nowrap><a href="#Delaunay">Delaunay</a></td>
  131. <td class="summary">Delaunay module</td>
  132. </tr>
  133. <tr>
  134. <td class="name" nowrap><a href="#Delaunay.triangulate">Delaunay.triangulate (...)</a></td>
  135. <td class="summary">Triangulates a set of given vertices</td>
  136. </tr>
  137. </table>
  138. <br/>
  139. <br/>
  140. <h2><a name="Class_Edge"></a>Class Edge </h2>
  141. <a href="index.html#Edge">Edge</a> class
  142. <dl class="function">
  143. <dt>
  144. <a name = "Edge:new"></a>
  145. <strong>Edge:new (p1, p2)</strong>
  146. </dt>
  147. <dd>
  148. Creates a new <a href="index.html#Edge">Edge</a>
  149. <h3>Parameters:</h3>
  150. <ul>
  151. <li><span class="parameter">p1</span>
  152. a <a href="index.html#Point">Point</a>
  153. </li>
  154. <li><span class="parameter">p2</span>
  155. a <a href="index.html#Point">Point</a>
  156. </li>
  157. </ul>
  158. <h3>Returns:</h3>
  159. <ol>
  160. a new <a href="index.html#Edge">Edge</a>
  161. </ol>
  162. <h3>Usage:</h3>
  163. <ul>
  164. <pre class="example">
  165. <span class="keyword">local</span> Delaunay = <span class="global">require</span> <span class="string">'Delaunay'</span>
  166. <span class="keyword">local</span> Edge = Delaunay.Edge
  167. <span class="keyword">local</span> Point = Delaunay.Point
  168. <span class="keyword">local</span> e = Edge:new(Point(<span class="number">1</span>,<span class="number">1</span>), Point(<span class="number">2</span>,<span class="number">5</span>))
  169. <span class="keyword">local</span> e = Edge(Point(<span class="number">1</span>,<span class="number">1</span>), Point(<span class="number">2</span>,<span class="number">5</span>)) <span class="comment">-- Alias to Edge.new
  170. </span> <span class="global">print</span>(e) <span class="comment">-- print the edge members p1 and p2
  171. </span></pre>
  172. </ul>
  173. </dd>
  174. <dt>
  175. <a name = "Edge:same"></a>
  176. <strong>Edge:same (otherEdge)</strong>
  177. </dt>
  178. <dd>
  179. Test if <code>otherEdge</code> is similar to self. It does not take into account the direction.
  180. <h3>Parameters:</h3>
  181. <ul>
  182. <li><span class="parameter">otherEdge</span>
  183. an <a href="index.html#Edge">Edge</a>
  184. </li>
  185. </ul>
  186. <h3>Returns:</h3>
  187. <ol>
  188. <code>true</code> or <code>false</code>
  189. </ol>
  190. <h3>Usage:</h3>
  191. <ul>
  192. <pre class="example">
  193. <span class="keyword">local</span> e1 = Edge(Point(<span class="number">1</span>,<span class="number">1</span>), Point(<span class="number">2</span>,<span class="number">5</span>))
  194. <span class="keyword">local</span> e2 = Edge(Point(<span class="number">2</span>,<span class="number">5</span>), Point(<span class="number">1</span>,<span class="number">1</span>))
  195. <span class="global">print</span>(e1:same(e2)) <span class="comment">--&gt; true
  196. </span> <span class="global">print</span>(e1 == e2)) <span class="comment">--&gt; false, == operator considers the direction
  197. </span></pre>
  198. </ul>
  199. </dd>
  200. <dt>
  201. <a name = "Edge:length"></a>
  202. <strong>Edge:length ()</strong>
  203. </dt>
  204. <dd>
  205. Returns the length.
  206. <h3>Returns:</h3>
  207. <ol>
  208. the length of self
  209. </ol>
  210. <h3>Usage:</h3>
  211. <ul>
  212. <pre class="example">
  213. <span class="keyword">local</span> e = Edge(Point(), Point(<span class="number">10</span>,<span class="number">0</span>))
  214. <span class="global">print</span>(e:length()) <span class="comment">--&gt; 10
  215. </span></pre>
  216. </ul>
  217. </dd>
  218. <dt>
  219. <a name = "Edge:getMidPoint"></a>
  220. <strong>Edge:getMidPoint ()</strong>
  221. </dt>
  222. <dd>
  223. Returns the midpoint coordinates.
  224. <h3>Returns:</h3>
  225. <ol>
  226. <li>
  227. the x-coordinate of self midpoint</li>
  228. <li>
  229. the y-coordinate of self midpoint</li>
  230. </ol>
  231. <h3>Usage:</h3>
  232. <ul>
  233. <pre class="example">
  234. <span class="keyword">local</span> e = Edge(Point(), Point(<span class="number">10</span>,<span class="number">0</span>))
  235. <span class="global">print</span>(e:getMidPoint()) <span class="comment">--&gt; 5, 0
  236. </span></pre>
  237. </ul>
  238. </dd>
  239. </dl>
  240. <h2><a name="Class_Point"></a>Class Point </h2>
  241. Point class
  242. <dl class="function">
  243. <dt>
  244. <a name = "Point:new"></a>
  245. <strong>Point:new (x, y)</strong>
  246. </dt>
  247. <dd>
  248. Creates a new <a href="index.html#Point">Point</a>
  249. <h3>Parameters:</h3>
  250. <ul>
  251. <li><span class="parameter">x</span>
  252. the x-coordinate
  253. </li>
  254. <li><span class="parameter">y</span>
  255. the y-coordinate
  256. </li>
  257. </ul>
  258. <h3>Returns:</h3>
  259. <ol>
  260. a new <a href="index.html#Point">Point</a>
  261. </ol>
  262. <h3>Usage:</h3>
  263. <ul>
  264. <pre class="example">
  265. <span class="keyword">local</span> Delaunay = <span class="global">require</span> <span class="string">'Delaunay'</span>
  266. <span class="keyword">local</span> Point = Delaunay.Point
  267. <span class="keyword">local</span> p = Point:new(<span class="number">1</span>,<span class="number">1</span>)
  268. <span class="keyword">local</span> p = Point(<span class="number">1</span>,<span class="number">1</span>) <span class="comment">-- Alias to Point.new
  269. </span> <span class="global">print</span>(p) <span class="comment">-- print the point members x and y
  270. </span></pre>
  271. </ul>
  272. </dd>
  273. <dt>
  274. <a name = "Point:dist2"></a>
  275. <strong>Point:dist2 (p)</strong>
  276. </dt>
  277. <dd>
  278. Returns the square distance to another <a href="index.html#Point">Point</a>.
  279. <h3>Parameters:</h3>
  280. <ul>
  281. <li><span class="parameter">p</span>
  282. a <a href="index.html#Point">Point</a>
  283. </li>
  284. </ul>
  285. <h3>Returns:</h3>
  286. <ol>
  287. the square distance from self to <code>p</code>.
  288. </ol>
  289. <h3>Usage:</h3>
  290. <ul>
  291. <pre class="example">
  292. <span class="keyword">local</span> p1, p2 = Point(), Point(<span class="number">1</span>,<span class="number">1</span>)
  293. <span class="global">print</span>(p1:dist2(p2)) <span class="comment">--&gt; 2
  294. </span></pre>
  295. </ul>
  296. </dd>
  297. <dt>
  298. <a name = "Point:dist"></a>
  299. <strong>Point:dist (p)</strong>
  300. </dt>
  301. <dd>
  302. Returns the distance to another <a href="index.html#Point">Point</a>.
  303. <h3>Parameters:</h3>
  304. <ul>
  305. <li><span class="parameter">p</span>
  306. a <a href="index.html#Point">Point</a>
  307. </li>
  308. </ul>
  309. <h3>Returns:</h3>
  310. <ol>
  311. the distance from self to <code>p</code>.
  312. </ol>
  313. <h3>Usage:</h3>
  314. <ul>
  315. <pre class="example">
  316. <span class="keyword">local</span> p1, p2 = Point(), Point(<span class="number">1</span>,<span class="number">1</span>)
  317. <span class="global">print</span>(p1:dist2(p2)) <span class="comment">--&gt; 1.4142135623731
  318. </span></pre>
  319. </ul>
  320. </dd>
  321. <dt>
  322. <a name = "Point:isInCircle"></a>
  323. <strong>Point:isInCircle (cx, cy, r)</strong>
  324. </dt>
  325. <dd>
  326. Checks if self lies into the bounds of a circle
  327. <h3>Parameters:</h3>
  328. <ul>
  329. <li><span class="parameter">cx</span>
  330. the x-coordinate of the circle center
  331. </li>
  332. <li><span class="parameter">cy</span>
  333. the y-coordinate of the circle center
  334. </li>
  335. <li><span class="parameter">r</span>
  336. the radius of the circle
  337. </li>
  338. </ul>
  339. <h3>Returns:</h3>
  340. <ol>
  341. <code>true</code> or <code>false</code>
  342. </ol>
  343. <h3>Usage:</h3>
  344. <ul>
  345. <pre class="example">
  346. <span class="keyword">local</span> p = Point()
  347. <span class="global">print</span>(p:isInCircle(<span class="number">0</span>,<span class="number">0</span>,<span class="number">1</span>)) <span class="comment">--&gt; true
  348. </span></pre>
  349. </ul>
  350. </dd>
  351. </dl>
  352. <h2><a name="Class_Triangle"></a>Class Triangle </h2>
  353. <a href="index.html#Triangle">Triangle</a> class
  354. <dl class="function">
  355. <dt>
  356. <a name = "Triangle:new"></a>
  357. <strong>Triangle:new (p1, p2, p3)</strong>
  358. </dt>
  359. <dd>
  360. Creates a new <a href="index.html#Triangle">Triangle</a>
  361. <h3>Parameters:</h3>
  362. <ul>
  363. <li><span class="parameter">p1</span>
  364. a <a href="index.html#Point">Point</a>
  365. </li>
  366. <li><span class="parameter">p2</span>
  367. a <a href="index.html#Point">Point</a>
  368. </li>
  369. <li><span class="parameter">p3</span>
  370. a <a href="index.html#Point">Point</a>
  371. </li>
  372. </ul>
  373. <h3>Returns:</h3>
  374. <ol>
  375. a new <a href="index.html#Triangle">Triangle</a>
  376. </ol>
  377. <h3>Usage:</h3>
  378. <ul>
  379. <pre class="example">
  380. <span class="keyword">local</span> Delaunay = <span class="global">require</span> <span class="string">'Delaunay'</span>
  381. <span class="keyword">local</span> Triangle = Delaunay.Triangle
  382. <span class="keyword">local</span> p1, p2, p3 = Point(), Point(<span class="number">2</span>,<span class="number">0</span>), Point(<span class="number">1</span>,<span class="number">1</span>)
  383. <span class="keyword">local</span> t = Triangle:new(p1, p2, p3)
  384. <span class="keyword">local</span> t = Triangle(p1, p2, p3) <span class="comment">-- Alias to Triangle.new
  385. </span> <span class="global">print</span>(t) <span class="comment">-- print the triangle members p1, p2 and p3
  386. </span></pre>
  387. </ul>
  388. </dd>
  389. <dt>
  390. <a name = "Triangle:isCW"></a>
  391. <strong>Triangle:isCW ()</strong>
  392. </dt>
  393. <dd>
  394. Checks if the triangle is defined clockwise (sequence p1-p2-p3)
  395. <h3>Returns:</h3>
  396. <ol>
  397. <code>true</code> or <code>false</code>
  398. </ol>
  399. <h3>Usage:</h3>
  400. <ul>
  401. <pre class="example">
  402. <span class="keyword">local</span> p1, p2, p3 = Point(), Point(<span class="number">1</span>,<span class="number">1</span>), Point(<span class="number">2</span>,<span class="number">0</span>)
  403. <span class="keyword">local</span> t = Triangle(p1, p2, p3)
  404. <span class="global">print</span>(t:isCW()) <span class="comment">--&gt; true
  405. </span></pre>
  406. </ul>
  407. </dd>
  408. <dt>
  409. <a name = "Triangle:isCCW"></a>
  410. <strong>Triangle:isCCW ()</strong>
  411. </dt>
  412. <dd>
  413. Checks if the triangle is defined counter-clockwise (sequence p1-p2-p3)
  414. <h3>Returns:</h3>
  415. <ol>
  416. <code>true</code> or <code>false</code>
  417. </ol>
  418. <h3>Usage:</h3>
  419. <ul>
  420. <pre class="example">
  421. <span class="keyword">local</span> p1, p2, p3 = Point(), Point(<span class="number">2</span>,<span class="number">0</span>), Point(<span class="number">1</span>,<span class="number">1</span>)
  422. <span class="keyword">local</span> t = Triangle(p1, p2, p3)
  423. <span class="global">print</span>(t:isCCW()) <span class="comment">--&gt; true
  424. </span></pre>
  425. </ul>
  426. </dd>
  427. <dt>
  428. <a name = "Triangle:getSidesLength"></a>
  429. <strong>Triangle:getSidesLength ()</strong>
  430. </dt>
  431. <dd>
  432. Returns the length of the edges
  433. <h3>Returns:</h3>
  434. <ol>
  435. <li>
  436. the length of the edge p1-p2</li>
  437. <li>
  438. the length of the edge p2-p3</li>
  439. <li>
  440. the length of the edge p3-p1</li>
  441. </ol>
  442. <h3>Usage:</h3>
  443. <ul>
  444. <pre class="example">
  445. <span class="keyword">local</span> p1, p2, p3 = Point(), Point(<span class="number">2</span>,<span class="number">0</span>), Point(<span class="number">1</span>,<span class="number">1</span>)
  446. <span class="keyword">local</span> t = Triangle(p1, p2, p3)
  447. <span class="global">print</span>(t:getSidesLength()) <span class="comment">--&gt; 2 1.4142135623731 1.4142135623731
  448. </span></pre>
  449. </ul>
  450. </dd>
  451. <dt>
  452. <a name = "Triangle:getCenter"></a>
  453. <strong>Triangle:getCenter ()</strong>
  454. </dt>
  455. <dd>
  456. Returns the coordinates of the center
  457. <h3>Returns:</h3>
  458. <ol>
  459. <li>
  460. the x-coordinate of the center</li>
  461. <li>
  462. the y-coordinate of the center</li>
  463. </ol>
  464. <h3>Usage:</h3>
  465. <ul>
  466. <pre class="example">
  467. <span class="keyword">local</span> p1, p2, p3 = Point(), Point(<span class="number">2</span>,<span class="number">0</span>), Point(<span class="number">1</span>,<span class="number">1</span>)
  468. <span class="keyword">local</span> t = Triangle(p1, p2, p3)
  469. <span class="global">print</span>(t:getCenter()) <span class="comment">--&gt; 1 0.33333333333333
  470. </span></pre>
  471. </ul>
  472. </dd>
  473. <dt>
  474. <a name = "Triangle:getCircumCircle"></a>
  475. <strong>Triangle:getCircumCircle ()</strong>
  476. </dt>
  477. <dd>
  478. Returns the coordinates of the circumcircle center and its radius
  479. <h3>Returns:</h3>
  480. <ol>
  481. <li>
  482. the x-coordinate of the circumcircle center</li>
  483. <li>
  484. the y-coordinate of the circumcircle center</li>
  485. <li>
  486. the radius of the circumcircle</li>
  487. </ol>
  488. <h3>Usage:</h3>
  489. <ul>
  490. <pre class="example">
  491. <span class="keyword">local</span> p1, p2, p3 = Point(), Point(<span class="number">2</span>,<span class="number">0</span>), Point(<span class="number">1</span>,<span class="number">1</span>)
  492. <span class="keyword">local</span> t = Triangle(p1, p2, p3)
  493. <span class="global">print</span>(t:getCircumCircle()) <span class="comment">--&gt; 1 0 1
  494. </span></pre>
  495. </ul>
  496. </dd>
  497. <dt>
  498. <a name = "Triangle:getCircumCenter"></a>
  499. <strong>Triangle:getCircumCenter ()</strong>
  500. </dt>
  501. <dd>
  502. Returns the coordinates of the circumcircle center
  503. <h3>Returns:</h3>
  504. <ol>
  505. <li>
  506. the x-coordinate of the circumcircle center</li>
  507. <li>
  508. the y-coordinate of the circumcircle center</li>
  509. </ol>
  510. <h3>Usage:</h3>
  511. <ul>
  512. <pre class="example">
  513. <span class="keyword">local</span> p1, p2, p3 = Point(), Point(<span class="number">2</span>,<span class="number">0</span>), Point(<span class="number">1</span>,<span class="number">1</span>)
  514. <span class="keyword">local</span> t = Triangle(p1, p2, p3)
  515. <span class="global">print</span>(t:getCircumCenter()) <span class="comment">--&gt; 1 0
  516. </span></pre>
  517. </ul>
  518. </dd>
  519. <dt>
  520. <a name = "Triangle:getCircumRadius"></a>
  521. <strong>Triangle:getCircumRadius ()</strong>
  522. </dt>
  523. <dd>
  524. Returns the radius of the circumcircle
  525. <h3>Returns:</h3>
  526. <ol>
  527. the radius of the circumcircle
  528. </ol>
  529. <h3>Usage:</h3>
  530. <ul>
  531. <pre class="example">
  532. <span class="keyword">local</span> p1, p2, p3 = Point(), Point(<span class="number">2</span>,<span class="number">0</span>), Point(<span class="number">1</span>,<span class="number">1</span>)
  533. <span class="keyword">local</span> t = Triangle(p1, p2, p3)
  534. <span class="global">print</span>(t:getCircumRadius()) <span class="comment">--&gt; 1
  535. </span></pre>
  536. </ul>
  537. </dd>
  538. <dt>
  539. <a name = "Triangle:getArea"></a>
  540. <strong>Triangle:getArea ()</strong>
  541. </dt>
  542. <dd>
  543. Returns the area
  544. <h3>Returns:</h3>
  545. <ol>
  546. the area
  547. </ol>
  548. <h3>Usage:</h3>
  549. <ul>
  550. <pre class="example">
  551. <span class="keyword">local</span> p1, p2, p3 = Point(), Point(<span class="number">2</span>,<span class="number">0</span>), Point(<span class="number">1</span>,<span class="number">1</span>)
  552. <span class="keyword">local</span> t = Triangle(p1, p2, p3)
  553. <span class="global">print</span>(t:getArea()) <span class="comment">--&gt; 1
  554. </span></pre>
  555. </ul>
  556. </dd>
  557. <dt>
  558. <a name = "Triangle:inCircumCircle"></a>
  559. <strong>Triangle:inCircumCircle (p)</strong>
  560. </dt>
  561. <dd>
  562. Checks if a given point lies into the triangle circumcircle
  563. <h3>Parameters:</h3>
  564. <ul>
  565. <li><span class="parameter">p</span>
  566. a <a href="index.html#Point">Point</a>
  567. </li>
  568. </ul>
  569. <h3>Returns:</h3>
  570. <ol>
  571. <code>true</code> or <code>false</code>
  572. </ol>
  573. <h3>Usage:</h3>
  574. <ul>
  575. <pre class="example">
  576. <span class="keyword">local</span> p1, p2, p3 = Point(), Point(<span class="number">2</span>,<span class="number">0</span>), Point(<span class="number">1</span>,<span class="number">1</span>)
  577. <span class="keyword">local</span> t = Triangle(p1, p2, p3)
  578. <span class="global">print</span>(t:inCircumCircle(Point(<span class="number">1</span>,-<span class="number">1</span>))) <span class="comment">--&gt; true
  579. </span></pre>
  580. </ul>
  581. </dd>
  582. </dl>
  583. <h2><a name="Delaunay_module"></a>Delaunay module </h2>
  584. <dl class="function">
  585. <dt>
  586. <a name = "Delaunay"></a>
  587. <strong>Delaunay</strong>
  588. </dt>
  589. <dd>
  590. Delaunay module
  591. <h3>Fields:</h3>
  592. <ul>
  593. <li><span class="parameter">Point</span>
  594. reference to the <a href="index.html#Point">Point</a> class
  595. </li>
  596. <li><span class="parameter">Edge</span>
  597. reference to the <a href="index.html#Edge">Edge</a> class
  598. </li>
  599. <li><span class="parameter">Triangle</span>
  600. reference to the <a href="index.html#Triangle">Triangle</a> class
  601. </li>
  602. <li><span class="parameter">convexMultiplier</span>
  603. multiplier heuristic for bounding triangle calculation. When small (~1) produces convex-hull, when large, produces concave hulls. Defaults to 1000.
  604. </li>
  605. <li><span class="parameter">_VERSION</span>
  606. the version of the current module
  607. </li>
  608. </ul>
  609. </dd>
  610. <dt>
  611. <a name = "Delaunay.triangulate"></a>
  612. <strong>Delaunay.triangulate (...)</strong>
  613. </dt>
  614. <dd>
  615. Triangulates a set of given vertices
  616. <h3>Parameters:</h3>
  617. <ul>
  618. <li><span class="parameter">...</span>
  619. a <code>vargarg</code> list of objects of type <a href="index.html#Point">Point</a>
  620. </li>
  621. </ul>
  622. <h3>Returns:</h3>
  623. <ol>
  624. a set of objects of type <a href="index.html#Triangle">Triangle</a>
  625. </ol>
  626. <h3>Usage:</h3>
  627. <ul>
  628. <pre class="example">
  629. <span class="keyword">local</span> Delaunay = <span class="global">require</span> <span class="string">'Delaunay'</span>
  630. <span class="keyword">local</span> Point = Delaunay.Point
  631. <span class="keyword">local</span> p1, p2, p3, p4 = Point(), Point(<span class="number">2</span>,<span class="number">0</span>), Point(<span class="number">1</span>,<span class="number">1</span>), Point(<span class="number">1</span>,-<span class="number">1</span>)
  632. <span class="keyword">local</span> triangles = Delaunay.triangulate(p1, p2, p3, p4)
  633. <span class="keyword">for</span> i = <span class="number">1</span>, #triangles <span class="keyword">do</span>
  634. <span class="global">print</span>(triangles[i])
  635. <span class="keyword">end</span></pre>
  636. </ul>
  637. </dd>
  638. </dl>
  639. </div> <!-- id="content" -->
  640. </div> <!-- id="main" -->
  641. <div id="about">
  642. <i>generated by <a href="http://github.com/stevedonovan/LDoc">LDoc 1.4.3</a></i>
  643. <i style="float:right;">Last updated 2016-01-29 14:54:14 </i>
  644. </div> <!-- id="about" -->
  645. </div> <!-- id="container" -->
  646. </body>
  647. </html>