"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
-<!-- 2025-07-29 ti 03:07 -->
+<!-- 2025-07-29 ti 04:01 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Fractals</title>
<h2>Table of Contents</h2>
<div id="text-table-of-contents" role="doc-toc">
<ul>
-<li><a href="#org9daf269">1. Fractal circles</a></li>
-<li><a href="#org899c436">2. Fractal circles animated</a></li>
-<li><a href="#org7c10a33">3. Fractal of squares</a></li>
-<li><a href="#orgd51d159">4. Fractal of squares animated</a></li>
-<li><a href="#orgeb0731d">5. Fractal of trees</a></li>
+<li><a href="#orgc02cae4">1. Fractal circles</a></li>
+<li><a href="#org76aadf4">2. Fractal circles animated</a></li>
+<li><a href="#org0b23324">3. Fractal of squares</a></li>
+<li><a href="#orgc4024a2">4. Fractal of squares animated</a></li>
+<li><a href="#org3766139">5. Fractal of trees</a></li>
</ul>
</div>
</div>
</style>
-<div id="outline-container-org9daf269" class="outline-2">
-<h2 id="org9daf269"><span class="section-number-2">1.</span> Fractal circles</h2>
+<div id="outline-container-orgc02cae4" class="outline-2">
+<h2 id="orgc02cae4"><span class="section-number-2">1.</span> Fractal circles</h2>
<div class="outline-text-2" id="text-1">
<p>
This QBasic program generates a visually captivating spiral fractal
</p>
-<div id="orgd7ba7e1" class="figure">
+<div id="orgd3f9b1b" class="figure">
<p><a href="fractal circles.bas" class="responsive-img"><img src="fractal%20circles.png" alt="fractal%20circles.png" class="responsive-img" /></a>
</p>
</div>
</div>
</div>
-<div id="outline-container-org899c436" class="outline-2">
-<h2 id="org899c436"><span class="section-number-2">2.</span> Fractal circles animated</h2>
+<div id="outline-container-org76aadf4" class="outline-2">
+<h2 id="org76aadf4"><span class="section-number-2">2.</span> Fractal circles animated</h2>
<div class="outline-text-2" id="text-2">
<p>
This QBasic program creates an animated fractal composed of circles,
</div>
</div>
-<div id="outline-container-org7c10a33" class="outline-2">
-<h2 id="org7c10a33"><span class="section-number-2">3.</span> Fractal of squares</h2>
+<div id="outline-container-org0b23324" class="outline-2">
+<h2 id="org0b23324"><span class="section-number-2">3.</span> Fractal of squares</h2>
<div class="outline-text-2" id="text-3">
<p>
This QBasic program generates and displays a fractal pattern composed of squares.
</p>
-<div id="orgcc61450" class="figure">
+<div id="orge09eae3" class="figure">
<p><a href="fractal squares.bas" class="responsive-img"><img src="fractal%20squares,%201.png" alt="fractal%20squares,%201.png" class="responsive-img" /></a>
</p>
</div>
-<div id="orgb9604e5" class="figure">
+<div id="orgd0efdc8" class="figure">
<p><a href="fractal squares.bas" class="responsive-img"><img src="fractal%20squares,%202.png" alt="fractal%20squares,%202.png" class="responsive-img" /></a>
</p>
</div>
</div>
</div>
-<div id="outline-container-orgd51d159" class="outline-2">
-<h2 id="orgd51d159"><span class="section-number-2">4.</span> Fractal of squares animated</h2>
+<div id="outline-container-orgc4024a2" class="outline-2">
+<h2 id="orgc4024a2"><span class="section-number-2">4.</span> Fractal of squares animated</h2>
<div class="outline-text-2" id="text-4">
<p>
This QBasic program generates an animated fractal pattern composed of
</div>
</div>
-<div id="outline-container-orgeb0731d" class="outline-2">
-<h2 id="orgeb0731d"><span class="section-number-2">5.</span> Fractal of trees</h2>
+<div id="outline-container-org3766139" class="outline-2">
+<h2 id="org3766139"><span class="section-number-2">5.</span> Fractal of trees</h2>
<div class="outline-text-2" id="text-5">
<p>
QBasic program that generates a visually appealing fractal tree
</div>
</div>
<div id="postamble" class="status">
-<p class="date">Created: 2025-07-29 ti 03:07</p>
+<p class="date">Created: 2025-07-29 ti 04:01</p>
<p class="validation"><a href="https://validator.w3.org/check?uri=referer">Validate</a></p>
</div>
</body>
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
-<!-- 2025-07-29 ti 03:07 -->
+<!-- 2025-07-29 ti 04:01 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Spiral series</title>
<h2>Table of Contents</h2>
<div id="text-table-of-contents" role="doc-toc">
<ul>
-<li><a href="#orgbe5e451">1. Spiral with increasing density</a></li>
-<li><a href="#org42e9442">2. Spiral with varying height</a></li>
-<li><a href="#org08ffd8d">3. Shaded spiral</a></li>
-<li><a href="#orgd4086ff">4. Sphere forming spiral</a></li>
-<li><a href="#org13d5094">5. Textured spherical spiral</a></li>
-<li><a href="#org8095c2a">6. Textured and shaded spherical spiral</a></li>
+<li><a href="#org37dc4fc">1. Spiral with increasing density</a></li>
+<li><a href="#org21cbf7d">2. Spiral with varying height</a></li>
+<li><a href="#org33d7607">3. Shaded spiral</a></li>
+<li><a href="#orga2665a9">4. Sphere forming spiral</a></li>
+<li><a href="#org5bf395e">5. Textured spherical spiral</a></li>
+<li><a href="#orgcf7ac5e">6. Textured and shaded spherical spiral</a></li>
</ul>
</div>
</div>
}
</style>
-<div id="outline-container-orgbe5e451" class="outline-2">
-<h2 id="orgbe5e451"><span class="section-number-2">1.</span> Spiral with increasing density</h2>
+<div id="outline-container-org37dc4fc" class="outline-2">
+<h2 id="org37dc4fc"><span class="section-number-2">1.</span> Spiral with increasing density</h2>
<div class="outline-text-2" id="text-1">
-<div id="orgdd274fd" class="figure">
+<div id="orge739dce" class="figure">
<p><img src="spiral.png" alt="spiral.png" class="responsive-img" />
</p>
</div>
</div>
</div>
-<div id="outline-container-org42e9442" class="outline-2">
-<h2 id="org42e9442"><span class="section-number-2">2.</span> Spiral with varying height</h2>
+<div id="outline-container-org21cbf7d" class="outline-2">
+<h2 id="org21cbf7d"><span class="section-number-2">2.</span> Spiral with varying height</h2>
<div class="outline-text-2" id="text-2">
-<div id="org3c75287" class="figure">
+<div id="orgd75b06a" class="figure">
<p><img src="spiral, 2.png" alt="spiral, 2.png" class="responsive-img" />
</p>
</div>
</div>
</div>
-<div id="outline-container-org08ffd8d" class="outline-2">
-<h2 id="org08ffd8d"><span class="section-number-2">3.</span> Shaded spiral</h2>
+<div id="outline-container-org33d7607" class="outline-2">
+<h2 id="org33d7607"><span class="section-number-2">3.</span> Shaded spiral</h2>
<div class="outline-text-2" id="text-3">
-<div id="org4e0dbfa" class="figure">
+<div id="org654d11c" class="figure">
<p><img src="spiral, 3.png" alt="spiral, 3.png" class="responsive-img" />
</p>
</div>
</div>
</div>
-<div id="outline-container-orgd4086ff" class="outline-2">
-<h2 id="orgd4086ff"><span class="section-number-2">4.</span> Sphere forming spiral</h2>
+<div id="outline-container-orga2665a9" class="outline-2">
+<h2 id="orga2665a9"><span class="section-number-2">4.</span> Sphere forming spiral</h2>
<div class="outline-text-2" id="text-4">
<p>
Similar to previous spiral, Line segments are connected between the
</p>
-<div id="org338ca23" class="figure">
+<div id="org251eeee" class="figure">
<p><img src="spiral, 4, 1.png" alt="spiral, 4, 1.png" class="responsive-img" />
</p>
</div>
</p>
-<div id="org6ad966c" class="figure">
+<div id="org65c625b" class="figure">
<p><img src="spiral, 4, 2.png" alt="spiral, 4, 2.png" class="responsive-img" />
</p>
</div>
</div>
</div>
-<div id="outline-container-org13d5094" class="outline-2">
-<h2 id="org13d5094"><span class="section-number-2">5.</span> Textured spherical spiral</h2>
+<div id="outline-container-org5bf395e" class="outline-2">
+<h2 id="org5bf395e"><span class="section-number-2">5.</span> Textured spherical spiral</h2>
<div class="outline-text-2" id="text-5">
-<div id="org30c81d4" class="figure">
+<div id="orge059dcd" class="figure">
<p><img src="spiral, 5.png" alt="spiral, 5.png" class="responsive-img" />
</p>
</div>
</div>
</div>
-<div id="outline-container-org8095c2a" class="outline-2">
-<h2 id="org8095c2a"><span class="section-number-2">6.</span> Textured and shaded spherical spiral</h2>
+<div id="outline-container-orgcf7ac5e" class="outline-2">
+<h2 id="orgcf7ac5e"><span class="section-number-2">6.</span> Textured and shaded spherical spiral</h2>
<div class="outline-text-2" id="text-6">
-<div id="org2bf0668" class="figure">
+<div id="org393ef59" class="figure">
<p><img src="spiral, 6.png" alt="spiral, 6.png" class="responsive-img" />
</p>
</div>
</div>
</div>
<div id="postamble" class="status">
-<p class="date">Created: 2025-07-29 ti 03:07</p>
+<p class="date">Created: 2025-07-29 ti 04:01</p>
<p class="validation"><a href="https://validator.w3.org/check?uri=referer">Validate</a></p>
</div>
</body>
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
-<!-- 2025-07-29 ti 03:07 -->
+<!-- 2025-07-29 ti 04:01 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Algorithmic textures</title>
<h2>Table of Contents</h2>
<div id="text-table-of-contents" role="doc-toc">
<ul>
-<li><a href="#org91fa02c">1. Circular waves</a></li>
-<li><a href="#org6016d80">2. Diamond square clouds</a></li>
-<li><a href="#orgd87ac34">3. Old paper</a></li>
-<li><a href="#orgeee80bf">4. Wood</a></li>
-<li><a href="#orgaf13ba6">5. Yellow flame</a></li>
+<li><a href="#org7eb216c">1. Circular waves</a></li>
+<li><a href="#org7458cec">2. Diamond square clouds</a></li>
+<li><a href="#orgea6166a">3. Old paper</a></li>
+<li><a href="#orgc06c2bc">4. Wood</a></li>
+<li><a href="#orgae633e6">5. Yellow flame</a></li>
</ul>
</div>
</div>
}
</style>
-<div id="outline-container-org91fa02c" class="outline-2">
-<h2 id="org91fa02c"><span class="section-number-2">1.</span> Circular waves</h2>
+<div id="outline-container-org7eb216c" class="outline-2">
+<h2 id="org7eb216c"><span class="section-number-2">1.</span> Circular waves</h2>
<div class="outline-text-2" id="text-1">
<p>
This QBasic program creates visually captivating circular wave
</div>
</div>
-<div id="outline-container-org6016d80" class="outline-2">
-<h2 id="org6016d80"><span class="section-number-2">2.</span> Diamond square clouds</h2>
+<div id="outline-container-org7458cec" class="outline-2">
+<h2 id="org7458cec"><span class="section-number-2">2.</span> Diamond square clouds</h2>
<div class="outline-text-2" id="text-2">
<p>
This QBasic program demonstrates the Diamond-Square algorithm, a
</div>
</div>
-<div id="outline-container-orgd87ac34" class="outline-2">
-<h2 id="orgd87ac34"><span class="section-number-2">3.</span> Old paper</h2>
+<div id="outline-container-orgea6166a" class="outline-2">
+<h2 id="orgea6166a"><span class="section-number-2">3.</span> Old paper</h2>
<div class="outline-text-2" id="text-3">
<p>
This QBasic program generates a procedural texture that simulates the
</div>
</div>
-<div id="outline-container-orgeee80bf" class="outline-2">
-<h2 id="orgeee80bf"><span class="section-number-2">4.</span> Wood</h2>
+<div id="outline-container-orgc06c2bc" class="outline-2">
+<h2 id="orgc06c2bc"><span class="section-number-2">4.</span> Wood</h2>
<div class="outline-text-2" id="text-4">
<p>
This QBasic program creates a visually appealing simulation of a wood
</div>
</div>
-<div id="outline-container-orgaf13ba6" class="outline-2">
-<h2 id="orgaf13ba6"><span class="section-number-2">5.</span> Yellow flame</h2>
+<div id="outline-container-orgae633e6" class="outline-2">
+<h2 id="orgae633e6"><span class="section-number-2">5.</span> Yellow flame</h2>
<div class="outline-text-2" id="text-5">
<p>
"Yellow Flame" is a visually captivating program written in QBasic
</div>
</div>
<div id="postamble" class="status">
-<p class="date">Created: 2025-07-29 ti 03:07</p>
+<p class="date">Created: 2025-07-29 ti 04:01</p>
<p class="validation"><a href="https://validator.w3.org/check?uri=referer">Validate</a></p>
</div>
</body>
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
-<!-- 2025-07-29 ti 03:08 -->
+<!-- 2025-07-29 ti 04:02 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>3D Synthezier</title>
<h2>Table of Contents</h2>
<div id="text-table-of-contents" role="doc-toc">
<ul>
-<li><a href="#org1c25da5">1. Operating principle</a>
+<li><a href="#orgab04fe6">1. Operating principle</a>
<ul>
-<li><a href="#org151ba78">1.1. Rectangular city</a></li>
-<li><a href="#org5a5682d">1.2. Hexagonal city</a></li>
+<li><a href="#org9be13a4">1.1. Rectangular city</a></li>
+<li><a href="#org36839f3">1.2. Hexagonal city</a></li>
</ul>
</li>
-<li><a href="#orgbf4536a">2. Scene description language</a>
+<li><a href="#org30ca50e">2. Scene description language</a>
<ul>
-<li><a href="#org9ce3ce1">2.1. here</a></li>
-<li><a href="#org20a3f10">2.2. p</a></li>
-<li><a href="#org8539fb7">2.3. f</a></li>
-<li><a href="#orgcb0bb43">2.4. warn</a></li>
-<li><a href="#org67c4bf9">2.5. end</a></li>
-<li><a href="#orgac7f6a8">2.6. mtl</a></li>
-<li><a href="#orgf12132b">2.7. mtlrnd</a></li>
-<li><a href="#org97b7b25">2.8. obj</a></li>
-<li><a href="#org8c1f01d">2.9. rnd</a></li>
-<li><a href="#org80b1639">2.10. #</a></li>
-<li><a href="#org3e586a1">2.11. out</a></li>
-<li><a href="#org7ed97e5">2.12. set</a></li>
-<li><a href="#orgcee2857">2.13. variables usage</a></li>
-<li><a href="#org0ddfdf3">2.14. cmp</a></li>
-<li><a href="#org59d6e09">2.15. ?</a></li>
-<li><a href="#org23411ad">2.16. dum</a></li>
+<li><a href="#org0d24bd7">2.1. here</a></li>
+<li><a href="#org6ab5d55">2.2. p</a></li>
+<li><a href="#orgbfd2ca4">2.3. f</a></li>
+<li><a href="#org506845e">2.4. warn</a></li>
+<li><a href="#org6679f47">2.5. end</a></li>
+<li><a href="#orgc9c802d">2.6. mtl</a></li>
+<li><a href="#org73b0665">2.7. mtlrnd</a></li>
+<li><a href="#org7c6cb2b">2.8. obj</a></li>
+<li><a href="#org45b3b8b">2.9. rnd</a></li>
+<li><a href="#org3a49053">2.10. #</a></li>
+<li><a href="#org6aead6d">2.11. out</a></li>
+<li><a href="#org4ecb55a">2.12. set</a></li>
+<li><a href="#orgf032278">2.13. variables usage</a></li>
+<li><a href="#org1566459">2.14. cmp</a></li>
+<li><a href="#org53928e5">2.15. ?</a></li>
+<li><a href="#orgf90eb28">2.16. dum</a></li>
</ul>
</li>
-<li><a href="#org3bba71b">3. Installation</a>
+<li><a href="#orgde3ed20">3. Installation</a>
<ul>
-<li><a href="#org908b6f7">3.1. System requirements</a></li>
-<li><a href="#orgc19c8f1">3.2. Directory layout</a></li>
+<li><a href="#orgfa97fc7">3.1. System requirements</a></li>
+<li><a href="#org48bad96">3.2. Directory layout</a></li>
</ul>
</li>
-<li><a href="#org35f0d1e">4. Usage</a></li>
+<li><a href="#org3cec799">4. Usage</a></li>
</ul>
</div>
</div>
</style>
-<div id="outline-container-org1c25da5" class="outline-2">
-<h2 id="org1c25da5"><span class="section-number-2">1.</span> Operating principle</h2>
+<div id="outline-container-orgab04fe6" class="outline-2">
+<h2 id="orgab04fe6"><span class="section-number-2">1.</span> Operating principle</h2>
<div class="outline-text-2" id="text-1">
<p>
Parses scene definition language and creates 3D world based on
</p>
</div>
-<div id="outline-container-org151ba78" class="outline-3">
-<h3 id="org151ba78"><span class="section-number-3">1.1.</span> Rectangular city</h3>
+<div id="outline-container-org9be13a4" class="outline-3">
+<h3 id="org9be13a4"><span class="section-number-3">1.1.</span> Rectangular city</h3>
<div class="outline-text-3" id="text-1-1">
-<div id="org90c6e66" class="figure">
+<div id="orgf8acc50" class="figure">
<p><img src="rectangular city, 1.jpeg" alt="rectangular city, 1.jpeg" class="responsive-img" />
</p>
</div>
-<div id="orgc1cff23" class="figure">
+<div id="org863e43c" class="figure">
<p><img src="rectangular city, 2.jpeg" alt="rectangular city, 2.jpeg" class="responsive-img" />
</p>
</div>
-<div id="orgefc4043" class="figure">
+<div id="org19a0808" class="figure">
<p><img src="rectangular city, 3.jpeg" alt="rectangular city, 3.jpeg" class="responsive-img" />
</p>
</div>
</div>
</div>
-<div id="outline-container-org5a5682d" class="outline-3">
-<h3 id="org5a5682d"><span class="section-number-3">1.2.</span> Hexagonal city</h3>
+<div id="outline-container-org36839f3" class="outline-3">
+<h3 id="org36839f3"><span class="section-number-3">1.2.</span> Hexagonal city</h3>
<div class="outline-text-3" id="text-1-2">
-<div id="orgeac3b31" class="figure">
+<div id="org2b6d320" class="figure">
<p><img src="hexagonal city, 1.jpeg" alt="hexagonal city, 1.jpeg" class="responsive-img" />
</p>
</div>
-<div id="org0bb6894" class="figure">
+<div id="orgc07a92e" class="figure">
<p><img src="hexagonal city, 2.jpeg" alt="hexagonal city, 2.jpeg" class="responsive-img" />
</p>
</div>
-<div id="org722f7cd" class="figure">
+<div id="org3696bf6" class="figure">
<p><img src="hexagonal city, 3.jpeg" alt="hexagonal city, 3.jpeg" class="responsive-img" />
</p>
</div>
</div>
</div>
</div>
-<div id="outline-container-orgbf4536a" class="outline-2">
-<h2 id="orgbf4536a"><span class="section-number-2">2.</span> Scene description language</h2>
+<div id="outline-container-org30ca50e" class="outline-2">
+<h2 id="org30ca50e"><span class="section-number-2">2.</span> Scene description language</h2>
<div class="outline-text-2" id="text-2">
<p>
See also examples.
</p>
</div>
-<div id="outline-container-org9ce3ce1" class="outline-3">
-<h3 id="org9ce3ce1"><span class="section-number-3">2.1.</span> here</h3>
+<div id="outline-container-org0d24bd7" class="outline-3">
+<h3 id="org0d24bd7"><span class="section-number-3">2.1.</span> here</h3>
<div class="outline-text-3" id="text-2-1">
<pre class="example">
here
</p>
</div>
</div>
-<div id="outline-container-org20a3f10" class="outline-3">
-<h3 id="org20a3f10"><span class="section-number-3">2.2.</span> p</h3>
+<div id="outline-container-org6ab5d55" class="outline-3">
+<h3 id="org6ab5d55"><span class="section-number-3">2.2.</span> p</h3>
<div class="outline-text-3" id="text-2-2">
<pre class="example">
p x y z
</p>
</div>
</div>
-<div id="outline-container-org8539fb7" class="outline-3">
-<h3 id="org8539fb7"><span class="section-number-3">2.3.</span> f</h3>
+<div id="outline-container-orgbfd2ca4" class="outline-3">
+<h3 id="orgbfd2ca4"><span class="section-number-3">2.3.</span> f</h3>
<div class="outline-text-3" id="text-2-3">
<pre class="example">
f p1 p2 p3 p4
</p>
</div>
</div>
-<div id="outline-container-orgcb0bb43" class="outline-3">
-<h3 id="orgcb0bb43"><span class="section-number-3">2.4.</span> warn</h3>
+<div id="outline-container-org506845e" class="outline-3">
+<h3 id="org506845e"><span class="section-number-3">2.4.</span> warn</h3>
<div class="outline-text-3" id="text-2-4">
<pre class="example">
warn <message>
</p>
</div>
</div>
-<div id="outline-container-org67c4bf9" class="outline-3">
-<h3 id="org67c4bf9"><span class="section-number-3">2.5.</span> end</h3>
+<div id="outline-container-org6679f47" class="outline-3">
+<h3 id="org6679f47"><span class="section-number-3">2.5.</span> end</h3>
<div class="outline-text-3" id="text-2-5">
<pre class="example">
end
</p>
</div>
</div>
-<div id="outline-container-orgac7f6a8" class="outline-3">
-<h3 id="orgac7f6a8"><span class="section-number-3">2.6.</span> mtl</h3>
+<div id="outline-container-orgc9c802d" class="outline-3">
+<h3 id="orgc9c802d"><span class="section-number-3">2.6.</span> mtl</h3>
<div class="outline-text-3" id="text-2-6">
<pre class="example">
mtl material
</p>
</div>
</div>
-<div id="outline-container-orgf12132b" class="outline-3">
-<h3 id="orgf12132b"><span class="section-number-3">2.7.</span> mtlrnd</h3>
+<div id="outline-container-org73b0665" class="outline-3">
+<h3 id="org73b0665"><span class="section-number-3">2.7.</span> mtlrnd</h3>
<div class="outline-text-3" id="text-2-7">
<pre class="example">
mtlrnd material ...
</p>
</div>
</div>
-<div id="outline-container-org97b7b25" class="outline-3">
-<h3 id="org97b7b25"><span class="section-number-3">2.8.</span> obj</h3>
+<div id="outline-container-org7c6cb2b" class="outline-3">
+<h3 id="org7c6cb2b"><span class="section-number-3">2.8.</span> obj</h3>
<div class="outline-text-3" id="text-2-8">
<pre class="example">
obj object xz45 xy20 x+3 y*2
</p>
-<div id="orgec9566e" class="figure">
+<div id="orgf0d2950" class="figure">
<p><img src="rotation.png" alt="rotation.png" />
</p>
</div>
</div>
</div>
-<div id="outline-container-org8c1f01d" class="outline-3">
-<h3 id="org8c1f01d"><span class="section-number-3">2.9.</span> rnd</h3>
+<div id="outline-container-org45b3b8b" class="outline-3">
+<h3 id="org45b3b8b"><span class="section-number-3">2.9.</span> rnd</h3>
<div class="outline-text-3" id="text-2-9">
<pre class="example">
rnd p^1^2^3 p^7^2^1
</p>
</div>
</div>
-<div id="outline-container-org80b1639" class="outline-3">
-<h3 id="org80b1639"><span class="section-number-3">2.10.</span> #</h3>
+<div id="outline-container-org3a49053" class="outline-3">
+<h3 id="org3a49053"><span class="section-number-3">2.10.</span> #</h3>
<div class="outline-text-3" id="text-2-10">
<pre class="example">
# whatever text
</p>
</div>
</div>
-<div id="outline-container-org3e586a1" class="outline-3">
-<h3 id="org3e586a1"><span class="section-number-3">2.11.</span> out</h3>
+<div id="outline-container-org6aead6d" class="outline-3">
+<h3 id="org6aead6d"><span class="section-number-3">2.11.</span> out</h3>
<div class="outline-text-3" id="text-2-11">
<pre class="example">
out file
</p>
</div>
</div>
-<div id="outline-container-org7ed97e5" class="outline-3">
-<h3 id="org7ed97e5"><span class="section-number-3">2.12.</span> set</h3>
+<div id="outline-container-org4ecb55a" class="outline-3">
+<h3 id="org4ecb55a"><span class="section-number-3">2.12.</span> set</h3>
<div class="outline-text-3" id="text-2-12">
<pre class="example">
set variable contents
</p>
</div>
</div>
-<div id="outline-container-orgcee2857" class="outline-3">
-<h3 id="orgcee2857"><span class="section-number-3">2.13.</span> variables usage</h3>
+<div id="outline-container-orgf032278" class="outline-3">
+<h3 id="orgf032278"><span class="section-number-3">2.13.</span> variables usage</h3>
<div class="outline-text-3" id="text-2-13">
<pre class="example">
anycommand %1 anything
</p>
</div>
</div>
-<div id="outline-container-org0ddfdf3" class="outline-3">
-<h3 id="org0ddfdf3"><span class="section-number-3">2.14.</span> cmp</h3>
+<div id="outline-container-org1566459" class="outline-3">
+<h3 id="org1566459"><span class="section-number-3">2.14.</span> cmp</h3>
<div class="outline-text-3" id="text-2-14">
<pre class="example">
cmp flag string1 string2
</p>
</div>
</div>
-<div id="outline-container-org59d6e09" class="outline-3">
-<h3 id="org59d6e09"><span class="section-number-3">2.15.</span> ?</h3>
+<div id="outline-container-org53928e5" class="outline-3">
+<h3 id="org53928e5"><span class="section-number-3">2.15.</span> ?</h3>
<div class="outline-text-3" id="text-2-15">
<pre class="example">
?flag anycommand
</p>
</div>
</div>
-<div id="outline-container-org23411ad" class="outline-3">
-<h3 id="org23411ad"><span class="section-number-3">2.16.</span> dum</h3>
+<div id="outline-container-orgf90eb28" class="outline-3">
+<h3 id="orgf90eb28"><span class="section-number-3">2.16.</span> dum</h3>
<div class="outline-text-3" id="text-2-16">
<pre class="example">
dum
</div>
</div>
-<div id="outline-container-org3bba71b" class="outline-2">
-<h2 id="org3bba71b"><span class="section-number-2">3.</span> Installation</h2>
+<div id="outline-container-orgde3ed20" class="outline-2">
+<h2 id="orgde3ed20"><span class="section-number-2">3.</span> Installation</h2>
<div class="outline-text-2" id="text-3">
<p>
Edit <b>bin/3dparse.bas</b> file and update include path in there.
</p>
</div>
-<div id="outline-container-org908b6f7" class="outline-3">
-<h3 id="org908b6f7"><span class="section-number-3">3.1.</span> System requirements</h3>
+<div id="outline-container-orgfa97fc7" class="outline-3">
+<h3 id="orgfa97fc7"><span class="section-number-3">3.1.</span> System requirements</h3>
<div class="outline-text-3" id="text-3-1">
<table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
</div>
</div>
-<div id="outline-container-orgc19c8f1" class="outline-3">
-<h3 id="orgc19c8f1"><span class="section-number-3">3.2.</span> Directory layout</h3>
+<div id="outline-container-org48bad96" class="outline-3">
+<h3 id="org48bad96"><span class="section-number-3">3.2.</span> Directory layout</h3>
<div class="outline-text-3" id="text-3-2">
<dl class="org-dl">
<dt>bin</dt><dd><dl class="org-dl">
</div>
</div>
-<div id="outline-container-org35f0d1e" class="outline-2">
-<h2 id="org35f0d1e"><span class="section-number-2">4.</span> Usage</h2>
+<div id="outline-container-org3cec799" class="outline-2">
+<h2 id="org3cec799"><span class="section-number-2">4.</span> Usage</h2>
<div class="outline-text-2" id="text-4">
<p>
Make sure you have QB binaries in your PATH. Execute
</div>
</div>
<div id="postamble" class="status">
-<p class="date">Created: 2025-07-29 ti 03:08</p>
+<p class="date">Created: 2025-07-29 ti 04:02</p>
<p class="validation"><a href="https://validator.w3.org/check?uri=referer">Validate</a></p>
</div>
</body>
--- /dev/null
+0 -10 -5\r
+0 -10 5\r
+-20 -10 -5\r
+-20 -10 5\r
+-20 0 -5\r
+-20 0 5\r
+0 10 -5\r
+0 10 5\r
+30 10 0\r
+10 0 -5\r
+10 0 5\r
+30 0 0\r
+40 10 0\r
+40 20 0\r
+-30 15 -3\r
+-30 15 3\r
+30 15 -3\r
+30 15 3\r
+999 999 999\r
+0 1\r
+2 3\r
+0 2\r
+1 3\r
+4 5\r
+2 4\r
+3 5\r
+4 0\r
+5 1\r
+6 7\r
+4 6\r
+5 7\r
+6 0\r
+7 1\r
+6 8\r
+7 8\r
+9 10\r
+6 9\r
+7 10\r
+0 9\r
+1 10\r
+9 11\r
+10 11\r
+11 12\r
+12 13\r
+13 8\r
+14 15\r
+16 17\r
+14 17\r
+15 16\r
+999 999
\ No newline at end of file
DECLARE SUB DisplayScene1 ()\r
-DECLARE SUB DisplayScene9 ()\r
DECLARE SUB DisplayScene2 ()\r
-DECLARE SUB DisplayScene8 ()\r
DECLARE SUB DisplayScene3 ()\r
-DECLARE SUB DisplayScene4 ()\r
-DECLARE SUB DisplayScene5 ()\r
-DECLARE SUB DisplayScene7 ()\r
DECLARE SUB InitializeProgram ()\r
-DECLARE SUB DisplayScenePart1 ()\r
-DECLARE SUB DisplayScenePart2 ()\r
-DECLARE SUB DisplayScenePart3 ()\r
-DECLARE SUB DisplayScenePart4 ()\r
-DECLARE SUB DisplayScenePart5 ()\r
-DECLARE SUB DisplayScenePart6 ()\r
-DECLARE SUB DisplayScenePart7 ()\r
-DECLARE SUB DisplayScenePart8 ()\r
-DECLARE SUB DisplayScenePart10 ()\r
-DECLARE SUB DisplayScenePart9 ()\r
DECLARE SUB DrawRoundedBox (topLeftX!, topLeftY!, bottomRightX!, bottomRightY!)\r
-DECLARE SUB ComputeShadeValue (firstPointX!, firstPointY!, firstPointZ!, secondPointX!, secondPointY!, secondPointZ!, thirdPointX!, thirdPointY!, thirdPointZ!, shadeValue!)\r
DECLARE SUB GetAngle (firstPointX!, firstPointY!, secondPointX!, secondPointY!, angleBetween!)\r
-DECLARE SUB RotatePoint (centerX!, centerY!, pointX!, pointY!, rotationAngle!)\r
-DECLARE SUB FillPolygon (vertex1X!, vertex1Y!, vertex2X!, vertex2Y!, vertex3X!, vertex3Y!, fillColor!)\r
+DECLARE SUB RotatePoint (rotationCenterX!, rotationCenterY!, pointX!, pointY!, rotationAngle!)\r
DECLARE SUB InitializeFont ()\r
DECLARE SUB WaitForInput ()\r
DECLARE SUB MakeBackground ()\r
DECLARE SUB SetPalette (red!, green!, blue!, colorIndex!)\r
DECLARE SUB PrintText (posX!, posY!, scale!, colorValue!, textString$)\r
-\r
' Presentation demonstrating realtime 3D graphics.\r
'\r
' This program is free software: released under Creative Commons Zero (CC0) license\r
DisplayScene1\r
DisplayScene2\r
DisplayScene3\r
-DisplayScene4\r
-DisplayScene7\r
-DisplayScene8\r
-\r
\r
SUB ComputeShadeValue (firstPointX, firstPointY, firstPointZ, secondPointX, secondPointY, secondPointZ, thirdPointX, thirdPointY, thirdPointZ, shadeValue)\r
'\r
END SUB\r
\r
SUB DisplayScene1\r
- '\r
- ' Loads a 3D model from data.dat and demonstrates real-time rotation.\r
- ' The model is projected to 2D and animated with a rotating effect.\r
- '\r
-\r
- SetPalette 0, 63, 20, 255\r
- DIM modelVertexX(0 TO 1000)\r
- DIM modelVertexY(0 TO 1000)\r
- DIM modelVertexZ(0 TO 1000)\r
- DIM projectedVertexX(0 TO 1000)\r
- DIM projectedVertexY(0 TO 1000)\r
- DIM lineStartVertex(0 TO 1500)\r
- DIM lineEndVertex(0 TO 1500)\r
- DIM oldLineStartX(1 TO 1500)\r
- DIM oldLineStartY(1 TO 1500)\r
- DIM oldLineEndX(1 TO 1500)\r
- DIM oldLineEndY(1 TO 1500)\r
- DIM totalVertices, totalLines\r
- DIM rotationAngle1, rotationAngle2, rotationAngle3\r
- DIM rotationSpeed1, rotationSpeed2, rotationSpeed3\r
- DIM incrementVertices, incrementPolygons\r
- DIM animationTime\r
- DIM currentLines\r
- DIM progressIndex\r
-\r
- animationTime = 0\r
- progressIndex = 1\r
- rotationAngle1 = 0\r
- rotationAngle2 = 0\r
- totalVertices = -1\r
- totalLines = 0\r
- incrementVertices = 0\r
- incrementPolygons = 0\r
- currentLines = 0\r
-\r
- SetPalette 40, 40, 40, 254\r
- COLOR 254\r
- LOCATE 2, 11\r
- PRINT "One moment"\r
-\r
- OPEN "data.dat" FOR INPUT AS #1\r
- INPUT #1, incrementVertices\r
- INPUT #1, incrementPolygons\r
-\r
- FOR vertexIndex = 1 TO incrementVertices\r
- INPUT #1, xVal, yVal, zVal\r
- totalVertices = totalVertices + 1\r
- modelVertexX(totalVertices) = xVal - 100\r
- modelVertexY(totalVertices) = yVal\r
- modelVertexZ(totalVertices) = zVal\r
- NEXT vertexIndex\r
-\r
- INPUT #1, lineVal1, lineVal2, lineVal3\r
-\r
- FOR polygonIndex = 1 TO incrementPolygons - 1\r
- INPUT #1, lineVal1!, lineVal2!, lineVal3!\r
- newLineStart! = lineVal1!\r
- newLineEnd! = lineVal2!\r
- GOSUB AddLine\r
- newLineStart! = lineVal2!\r
- newLineEnd! = lineVal3!\r
- GOSUB AddLine\r
- newLineStart! = lineVal1!\r
- newLineEnd! = lineVal3!\r
- GOSUB AddLine\r
- LOCATE 4, 10\r
- PRINT STR$(INT(polygonIndex / (incrementPolygons - 1) * 100)) + "% ready"\r
- NEXT polygonIndex\r
-\r
- CLOSE 1\r
- CLS\r
-\r
-RotateLoop:\r
- animationTime = animationTime + 1\r
- quitKey$ = INKEY$\r
- IF quitKey$ = "q" THEN END\r
-\r
- varA = COS(animationTime / 25)\r
- rotationAngle1 = COS(animationTime / 29) * varA\r
- rotationAngle2 = (globalPiValue / 2) + SIN(animationTime / 42) * varA\r
- sin1 = SIN(rotationAngle1)\r
- cos1 = COS(rotationAngle1)\r
- sin2 = SIN(rotationAngle2)\r
- cos2 = COS(rotationAngle2)\r
-\r
- IF progressIndex >= 1 THEN\r
- currentLines = currentLines + progressIndex\r
- progressIndex = progressIndex + .03\r
- IF currentLines > totalLines THEN currentLines = totalLines: progressIndex = 0\r
- END IF\r
-\r
- ' Project each 3D vertex to 2D\r
- FOR vertexIndex = 0 TO totalVertices\r
- x = modelVertexX(vertexIndex)\r
- y = modelVertexY(vertexIndex)\r
- z = modelVertexZ(vertexIndex)\r
- zTemp = z * sin1 + y * cos1\r
- yTemp = y * sin1 - z * cos1\r
- zFinal = zTemp * sin2 + x * cos2\r
- xFinal = x * sin2 - zTemp * cos2\r
- zFinal = zFinal + 100\r
- xFinal = xFinal / zFinal * 74 * 2\r
- yFinal = yTemp / zFinal * 65 * 2\r
- projectedVertexX(vertexIndex) = xFinal + 160\r
- projectedVertexY(vertexIndex) = yFinal + 80\r
- NEXT vertexIndex\r
-\r
- ' Draw lines between vertices\r
- FOR lineIndex = 1 TO currentLines\r
- startVertex = lineStartVertex(lineIndex)\r
- endVertex = lineEndVertex(lineIndex)\r
- x1 = projectedVertexX(startVertex)\r
- y1 = projectedVertexY(startVertex)\r
- x2 = projectedVertexX(endVertex)\r
- y2 = projectedVertexY(endVertex)\r
- LINE (oldLineStartX(lineIndex), oldLineStartY(lineIndex))-(oldLineEndX(lineIndex), oldLineEndY(lineIndex)), 0\r
- LINE (x1, y1)-(x2, y2), 255\r
- oldLineStartX(lineIndex) = x1\r
- oldLineStartY(lineIndex) = y1\r
- oldLineEndX(lineIndex) = x2\r
- oldLineEndY(lineIndex) = y2\r
- NEXT lineIndex\r
-\r
- SOUND 0, .5\r
- IF animationTime < 280 THEN GOTO RotateLoop\r
- GOTO EndScene\r
-\r
-AddLine:\r
- FOR checkIndex = 1 TO totalLines\r
- IF lineStartVertex(checkIndex) = newLineStart! THEN\r
- IF lineEndVertex(checkIndex) = newLineEnd! THEN RETURN\r
- END IF\r
- IF lineStartVertex(checkIndex) = newLineEnd! THEN\r
- IF lineEndVertex(checkIndex) = newLineStart! THEN RETURN\r
- END IF\r
- NEXT checkIndex\r
-\r
- totalLines = totalLines + 1\r
- lineStartVertex(totalLines) = newLineStart!\r
- lineEndVertex(totalLines) = newLineEnd!\r
- RETURN\r
-\r
-EndScene:\r
- globalAngleOne = rotationAngle1\r
- globalAngleTwo = rotationAngle2\r
-END SUB\r
-\r
-SUB DisplayScene2\r
- '\r
- ' Loads human face 3D model "data.dat" and projects triangular faces in 2D.\r
- ' Each triangle's average depth is computed, and polygons are drawn\r
- ' from back to front with FillPolygon. The shading is computed too.\r
- '\r
-\r
- SetPalette 0, 63, 20, 255\r
- CLS\r
- globalAngleOne = 0\r
- globalAngleTwo = 1.5\r
- DIM pointX(0 TO 2000)\r
- DIM pointY(0 TO 2000)\r
- DIM pointZ(0 TO 2000)\r
- DIM rotatedX(0 TO 2000)\r
- DIM rotatedY(0 TO 2000)\r
- DIM rotatedZ(0 TO 2000)\r
- DIM polyVertex1(1 TO 2000)\r
- DIM polyVertex2(1 TO 2000)\r
- DIM polyVertex3(1 TO 2000)\r
- numPoints = 0\r
- numTriangles = 0\r
-\r
- OPEN "data.dat" FOR INPUT AS #1\r
- INPUT #1, totalPoints\r
- INPUT #1, totalPolys\r
-\r
- FOR loopIndex = 1 TO totalPoints\r
- INPUT #1, posXVal, posYVal, posZVal\r
- pointX(numPoints) = posXVal - 100\r
- pointY(numPoints) = posYVal\r
- pointZ(numPoints) = posZVal\r
- numPoints = numPoints + 1\r
- NEXT loopIndex\r
-\r
- INPUT #1, lineValA, lineValB, lineValC\r
-\r
- FOR loopIndex = 1 TO totalPolys - 1\r
- INPUT #1, lineValA, lineValB, lineValC\r
- numTriangles = numTriangles + 1\r
- polyVertex1(numTriangles) = lineValA\r
- polyVertex2(numTriangles) = lineValB\r
- polyVertex3(numTriangles) = lineValC\r
- NEXT loopIndex\r
-\r
- CLOSE #1\r
-\r
- sin1 = SIN(globalAngleOne)\r
- cos1 = COS(globalAngleOne)\r
- sin2 = SIN(globalAngleTwo)\r
- cos2 = COS(globalAngleTwo)\r
-\r
- ' Project each 3D point\r
- FOR loopIndex = 0 TO numPoints\r
- localX = pointX(loopIndex)\r
- localY = pointY(loopIndex)\r
- localZ = pointZ(loopIndex)\r
- zTmp = localZ * sin1 + localY * cos1\r
- yTmp = localY * sin1 - localZ * cos1\r
- zFin = zTmp * sin2 + localX * cos2\r
- xFin = localX * sin2 - zTmp * cos2\r
- zFin = zFin + 100\r
- xFin = xFin / zFin * 74 * 2\r
- yFin = yTmp / zFin * 65 * 2\r
- rotatedX(loopIndex) = xFin + 160\r
- rotatedY(loopIndex) = yFin + 80\r
- rotatedZ(loopIndex) = zFin\r
- NEXT loopIndex\r
-\r
- ' Adjust palette for shading\r
- FOR loopIndex = 1 TO 49\r
- SetPalette loopIndex * 1.1 + 20, loopIndex * 1.1 + 10, loopIndex * 1.1, loopIndex\r
- NEXT loopIndex\r
-\r
- DIM polyDepth(1 TO numTriangles)\r
-\r
- FOR loopIndex = 1 TO numTriangles\r
- polyDepth(loopIndex) = (rotatedZ(polyVertex1(loopIndex)) + rotatedZ(polyVertex2(loopIndex)) + rotatedZ(polyVertex3(loopIndex)))\r
- NEXT loopIndex\r
-\r
- endIndex = numTriangles\r
-\r
- ' Sort by descending depth (z)\r
- FOR loopIndex = 1 TO numTriangles\r
- bigVal = -10000\r
- bigIndex = 1\r
- FOR checkIdx = 1 TO endIndex\r
- IF polyDepth(checkIdx) > bigVal THEN\r
- bigVal = polyDepth(checkIdx)\r
- bigIndex = checkIdx\r
- END IF\r
- NEXT checkIdx\r
-\r
- vertexA = polyVertex1(bigIndex)\r
- vertexB = polyVertex2(bigIndex)\r
- vertexC = polyVertex3(bigIndex)\r
- polyDepth(bigIndex) = polyDepth(endIndex)\r
- polyVertex1(bigIndex) = polyVertex1(endIndex)\r
- polyVertex2(bigIndex) = polyVertex2(endIndex)\r
- polyVertex3(bigIndex) = polyVertex3(endIndex)\r
- endIndex = endIndex - 1\r
-\r
- ComputeShadeValue rotatedX(vertexA), rotatedY(vertexA), rotatedZ(vertexA), rotatedX(vertexB), rotatedY(vertexB), rotatedZ(vertexB), rotatedX(vertexC), rotatedY(vertexC), rotatedZ(vertexC), shadeVal\r
-\r
- FillPolygon INT(rotatedX(vertexA)), INT(rotatedY(vertexA)), INT(rotatedX(vertexB)), INT(rotatedY(vertexB)), INT(rotatedX(vertexC)), INT(rotatedY(vertexC)), INT(shadeVal)\r
- NEXT loopIndex\r
-\r
-' Delay before proceeding to next scene\r
- FOR loopIndex = 1 TO 20\r
- SOUND 0, 1\r
- NEXT loopIndex\r
-\r
-END SUB\r
-\r
-SUB DisplayScene3\r
- '\r
- ' Demonstrates simple raster/wave effects by copying screen slices,\r
- ' does some random shifting, then shows text with circles around the bits.\r
- '\r
-\r
- DIM bufferArray(1 TO 10000)\r
- DIM waveArray(0 TO 35)\r
-\r
-\r
- ' Build a wave-like boundary in waveArray()\r
- FOR loopIndex = 0 TO 30\r
- IF loopIndex <= 5 THEN waveArray(loopIndex) = 120 + (SQR((20 - loopIndex) * loopIndex))\r
- IF (loopIndex > 5) AND (loopIndex < 25) THEN waveArray(loopIndex) = 120 + 10\r
- IF loopIndex >= 25 THEN waveArray(loopIndex) = 120 + (SQR((30 - loopIndex) * (loopIndex - 10)))\r
- NEXT loopIndex\r
-\r
- ' Slide the screen upward in small blocks\r
- FOR screenY = 0 TO 30\r
- FOR screenX = 10 TO 300 STEP 10\r
- GET (screenX, 0)-(screenX + 9, 198), bufferArray(1)\r
- PUT (screenX, 1), bufferArray(1), PSET\r
- NEXT screenX\r
-\r
- ' Slight color shift\r
- FOR colorIx = 1 TO 49\r
- SetPalette colorIx * 1.1 + (20 - screenY), colorIx * 1.1 + 10 + (screenY / 1.5), colorIx * 1.1, colorIx\r
- NEXT colorIx\r
-\r
- SOUND 0, 1\r
- LINE (160 - waveArray(screenY), 20)-(160 + waveArray(screenY), 20), 255\r
- NEXT screenY\r
-\r
- LOCATE 1, 1\r
- COLOR 254\r
- SetPalette 0, 0, 0, 254\r
- PRINT "Test 123456789"\r
- SetPalette 63, 0, 0, 253\r
-\r
- ' Draw circles around the nonzero pixels of the printed text\r
- FOR rowY = 0 TO 8\r
- FOR rowX = 0 TO 120\r
- pixelVal = POINT(rowX, rowY)\r
- IF pixelVal > 0 THEN CIRCLE (rowX * 2 + 50, rowY * 3 + 26), 2, 0\r
- NEXT rowX\r
-\r
- FOR rowX = 0 TO 120\r
- pixelVal = POINT(rowX, rowY + 1)\r
- IF pixelVal > 0 THEN CIRCLE (rowX * 2 + 50, (rowY + 1) * 3 + 26), 2, 253\r
- NEXT rowX\r
-\r
- SOUND 0, 2\r
- NEXT rowY\r
-\r
- RANDOMIZE 1\r
-\r
- ' Perform random screen shifts\r
- FOR loopIndex = 1 TO 10\r
- randY = RND * 100 + 50\r
- FOR screenX = 10 TO 300 STEP 10\r
- GET (screenX, randY)-(screenX + 9, 198), bufferArray(1)\r
- PUT (screenX, randY - 1), bufferArray(1), PSET\r
- NEXT screenX\r
- NEXT loopIndex\r
-\r
- COLOR 253\r
- SetPalette 0, 0, 0, 253\r
- LOCATE 1\r
- PRINT " Author: Svjatoslav Agejenko 30.09.2001 "\r
-\r
- GET (0, 0)-(319, 8), bufferArray(1)\r
- LOCATE 1\r
- PRINT " "\r
- PUT (0, 190), bufferArray(1), PSET\r
-\r
- FOR loopIndex = 1 TO 32\r
- SetPalette 0, loopIndex, loopIndex * 2, 253\r
- SOUND 0, 1\r
- NEXT loopIndex\r
-\r
- WaitForInput\r
-END SUB\r
-\r
-SUB DisplayScene4\r
'\r
' Builds a fractal backdrop, prints short text lines\r
\r
WaitForInput\r
END SUB\r
\r
-SUB DisplayScene7\r
+SUB DisplayScene2\r
'\r
' Simple transitional effect: draws horizontal lines across the screen\r
' in steps, clearing or darkening each row to black.\r
NEXT outerIndex\r
END SUB\r
\r
-SUB DisplayScene8\r
+SUB DisplayScene3\r
'\r
' A more complex 3D scene:\r
' Terrain with various heights.\r
destinationZ = 200\r
\r
' Load helicopter model\r
- OPEN "data2.dat" FOR INPUT AS #1\r
+ OPEN "copter.dat" FOR INPUT AS #1\r
indexA = 0\r
indexB = 0\r
helicopterPointer = totalPoints + 1\r
+++ /dev/null
-410 718\r
-89 6 10\r
-88 2 7\r
-87 6 8\r
-83 6 6\r
-99 -6 17\r
-99 -10 13\r
-96 -10 12\r
-95 -6 16\r
-93 -9 10\r
-92 -5 15\r
-90 -4 8\r
-91 -6 6\r
-88 -2 2\r
-90 2 12\r
-87 5 14\r
-88 2 16\r
-91 -3 18\r
-94 -4 19\r
-99 -5 20\r
-83 -1 23\r
-79 4 17\r
-76 1 22\r
-71 6 16\r
-70 6 19\r
-66 12 14\r
-64 12 16\r
-63 16 11\r
-62 17 13\r
-60 23 10\r
-64 17 7\r
-63 15 2\r
-59 22 4\r
-70 10 5\r
-83 1 -0\r
-75 4 -0\r
-75 7 5\r
-69 7 0\r
-57 22 -8\r
-60 14 -8\r
-68 4 -8\r
-74 0 -9\r
-86 -3 -9\r
-90 -8 -2\r
-93 -14 4\r
-92 -11 1\r
-92 -14 -1\r
-88 -14 -6\r
-90 -18 -5\r
-88 -12 -9\r
-91 -10 -14\r
-89 -8 -16\r
-85 -8 -19\r
-77 -1 -20\r
-71 4 -30\r
-69 4 -17\r
-90 -12 -19\r
-94 -15 -15\r
-92 -13 -12\r
-96 -16 6\r
-99 -17 6\r
-99 -25 0\r
-96 -21 1\r
-93 -17 2\r
-93 -21 -0\r
-93 -23 -4\r
-96 -25 -1\r
-90 -14 -10\r
-90 -16 -9\r
-91 -18 -8\r
-92 -19 -9\r
-94 -19 -10\r
-95 -24 -6\r
-96 -17 -13\r
-95 -17 -12\r
-96 -15 -15\r
-94 -15 -13\r
-99 -27 -3\r
-96 -26 -3\r
-99 -25 -8\r
-98 -16 -15\r
-98 -14 -19\r
-96 -14 -19\r
-94 -14 -18\r
-98 -16 -23\r
-96 -16 -23\r
-93 -15 -23\r
-89 -13 -24\r
-84 -9 -25\r
-78 -3 -27\r
-77 -2 -30\r
-80 -4 -33\r
-81 -3 -30\r
-84 -9 -32\r
-98 -12 -39\r
-96 -16 -33\r
-98 -16 -33\r
-93 -11 -38\r
-93 -15 -33\r
-88 -12 -33\r
-88 -10 -37\r
-84 -9 -36\r
-80 -3 -41\r
-86 -7 -41\r
-89 -9 -41\r
-93 -11 -40\r
-98 -13 -46\r
-92 -12 -46\r
-89 -10 -46\r
-86 -8 -46\r
-81 -3 -46\r
-74 3 -46\r
-74 3 -40\r
-61 14 -16\r
-57 23 -15\r
-57 23 -24\r
-62 14 -27\r
-60 23 -34\r
-66 15 -38\r
-62 22 -38\r
-67 16 -45\r
-64 22 -45\r
-69 17 -51\r
-73 17 -56\r
-71 21 -56\r
-79 20 -62\r
-78 5 -57\r
-83 5 -61\r
-67 21 -52\r
-69 10 -39\r
-75 4 -52\r
-80 -3 -52\r
-98 -13 -54\r
-93 -13 -54\r
-93 -9 -59\r
-98 -10 -59\r
-98 -2 -63\r
-93 -2 -62\r
-88 -3 -61\r
-89 -9 -57\r
-89 -11 -53\r
-86 -9 -53\r
-83 -3 -57\r
-98 5 -64\r
-93 6 -63\r
-98 20 -67\r
-92 18 -66\r
-86 20 -65\r
-88 6 -62\r
-61 18 14\r
-62 12 18\r
-60 22 20\r
-63 16 23\r
-68 5 22\r
-69 8 27\r
-61 22 27\r
-63 19 28\r
-63 21 32\r
-70 12 35\r
-70 10 31\r
-76 1 25\r
-76 2 29\r
-76 4 32\r
-77 7 37\r
-76 9 42\r
-70 14 40\r
-65 20 38\r
-71 19 46\r
-77 12 48\r
-82 5 43\r
-75 18 51\r
-79 18 55\r
-82 20 59\r
-85 19 60\r
-84 14 57\r
-83 25 62\r
-87 25 62\r
-91 24 64\r
-90 18 62\r
-95 24 64\r
-94 17 63\r
-99 24 64\r
-99 17 63\r
-99 11 59\r
-93 11 59\r
-89 12 59\r
-82 8 50\r
-83 3 38\r
-82 0 34\r
-83 -0 31\r
-82 -1 27\r
-89 -3 23\r
-89 -3 28\r
-93 -3 24\r
-99 -4 25\r
-93 -3 28\r
-99 -4 28\r
-89 -2 32\r
-93 -2 32\r
-99 -2 32\r
-93 -0 35\r
-99 -0 35\r
-93 0 38\r
-99 0 39\r
-92 2 44\r
-99 2 44\r
-93 7 55\r
-99 5 52\r
-93 4 51\r
-88 6 51\r
-89 3 43\r
-89 1 38\r
-89 -0 34\r
-66 11 11\r
-68 10 8\r
-72 6 12\r
-74 6 8\r
-80 4 13\r
-81 5 9\r
-84 5 10\r
-110 6 8\r
-109 2 7\r
-109 6 10\r
-114 6 6\r
-103 -6 16\r
-102 -10 12\r
-105 -5 15\r
-105 -9 10\r
-107 -4 8\r
-107 -6 6\r
-109 -2 2\r
-107 2 12\r
-110 5 13\r
-110 2 16\r
-106 -3 18\r
-103 -4 19\r
-114 -1 23\r
-118 5 16\r
-121 1 21\r
-128 6 18\r
-126 7 16\r
-134 12 15\r
-132 12 13\r
-135 17 12\r
-134 16 11\r
-138 23 9\r
-133 17 7\r
-138 22 4\r
-134 15 2\r
-127 10 5\r
-114 1 -0\r
-122 4 -0\r
-122 7 5\r
-128 8 0\r
-140 23 -9\r
-137 14 -9\r
-129 4 -9\r
-123 0 -9\r
-111 -3 -9\r
-107 -8 -2\r
-106 -11 1\r
-104 -14 4\r
-106 -14 -1\r
-109 -14 -6\r
-107 -18 -5\r
-109 -12 -9\r
-106 -10 -14\r
-108 -8 -16\r
-112 -8 -19\r
-120 -0 -21\r
-128 4 -18\r
-125 4 -30\r
-107 -12 -19\r
-103 -15 -15\r
-105 -13 -12\r
-102 -16 6\r
-101 -21 1\r
-104 -17 2\r
-104 -21 -0\r
-104 -23 -4\r
-101 -25 -1\r
-107 -14 -10\r
-107 -16 -9\r
-106 -18 -8\r
-105 -19 -9\r
-102 -24 -6\r
-104 -19 -10\r
-102 -17 -12\r
-101 -17 -13\r
-101 -15 -15\r
-103 -15 -13\r
-102 -26 -3\r
-101 -14 -19\r
-103 -14 -18\r
-101 -16 -23\r
-104 -15 -23\r
-108 -13 -24\r
-113 -9 -25\r
-118 -3 -28\r
-120 -1 -30\r
-117 -4 -34\r
-116 -2 -30\r
-113 -9 -32\r
-101 -16 -33\r
-104 -11 -38\r
-104 -15 -33\r
-109 -12 -33\r
-109 -10 -37\r
-112 -8 -36\r
-116 -3 -41\r
-110 -7 -41\r
-108 -9 -41\r
-103 -11 -40\r
-104 -12 -46\r
-108 -10 -46\r
-111 -8 -46\r
-116 -3 -47\r
-122 4 -46\r
-123 4 -40\r
-136 14 -17\r
-140 23 -16\r
-139 23 -25\r
-134 14 -27\r
-136 23 -34\r
-135 23 -38\r
-131 16 -38\r
-132 22 -46\r
-129 16 -45\r
-125 21 -56\r
-123 18 -56\r
-127 17 -51\r
-117 21 -62\r
-119 5 -57\r
-113 6 -61\r
-129 21 -52\r
-127 10 -39\r
-121 4 -52\r
-116 -3 -52\r
-103 -13 -54\r
-103 -9 -59\r
-103 -2 -62\r
-109 -3 -61\r
-108 -9 -57\r
-108 -11 -54\r
-111 -9 -53\r
-113 -3 -57\r
-104 6 -63\r
-104 18 -66\r
-109 6 -63\r
-110 20 -65\r
-135 13 18\r
-136 18 14\r
-138 22 19\r
-135 16 22\r
-128 8 26\r
-129 6 22\r
-134 19 27\r
-136 22 26\r
-135 22 32\r
-127 11 30\r
-128 13 35\r
-122 1 25\r
-122 2 29\r
-121 4 32\r
-121 7 37\r
-128 14 39\r
-121 9 41\r
-132 20 38\r
-127 19 46\r
-121 12 48\r
-115 5 43\r
-123 18 51\r
-119 18 55\r
-114 14 56\r
-113 20 60\r
-116 20 59\r
-111 25 62\r
-115 25 61\r
-108 18 62\r
-107 24 64\r
-104 17 63\r
-103 24 64\r
-105 11 59\r
-109 12 58\r
-115 9 50\r
-115 3 38\r
-115 1 34\r
-115 -0 31\r
-115 -1 27\r
-109 -3 23\r
-109 -3 28\r
-104 -3 24\r
-105 -3 28\r
-109 -2 32\r
-105 -2 31\r
-105 -0 34\r
-105 0 38\r
-105 2 43\r
-105 7 55\r
-105 4 51\r
-110 6 50\r
-109 3 43\r
-109 1 38\r
-109 -0 34\r
-129 10 7\r
-131 11 11\r
-125 6 12\r
-123 6 7\r
-117 5 12\r
-117 5 9\r
-113 5 10\r
-2 0 1\r
-3 2 1\r
-6 4 5\r
-4 6 7\r
-8 7 6\r
-7 8 9\r
-8 10 9\r
-11 10 8\r
-12 10 11\r
-1 10 12\r
-13 10 1\r
-9 10 13\r
-0 13 1\r
-14 13 0\r
-15 13 14\r
-9 15 16\r
-15 9 13\r
-17 9 16\r
-9 17 7\r
-18 7 17\r
-7 18 4\r
-19 15 14\r
-20 19 14\r
-19 20 21\r
-22 21 20\r
-21 22 23\r
-24 23 22\r
-23 24 25\r
-26 25 24\r
-25 26 27\r
-28 27 26\r
-28 26 29\r
-31 29 30\r
-32 30 29\r
-33 3 1\r
-12 33 1\r
-34 3 33\r
-3 34 35\r
-36 35 34\r
-35 36 32\r
-30 32 36\r
-31 30 37\r
-37 30 38\r
-38 30 36\r
-39 38 36\r
-34 39 36\r
-40 34 33\r
-40 33 41\r
-34 40 39\r
-41 33 12\r
-42 41 12\r
-44 8 43\r
-8 44 11\r
-42 11 44\r
-11 42 12\r
-42 44 45\r
-46 42 45\r
-47 46 45\r
-42 46 41\r
-48 41 46\r
-41 48 49\r
-50 41 49\r
-41 50 51\r
-52 41 51\r
-54 52 53\r
-52 54 40\r
-41 52 40\r
-50 49 55\r
-51 50 55\r
-56 55 49\r
-57 56 49\r
-8 58 43\r
-58 8 6\r
-58 5 59\r
-5 58 6\r
-61 59 60\r
-59 61 58\r
-62 58 61\r
-58 62 43\r
-44 43 62\r
-45 44 62\r
-63 45 62\r
-47 63 64\r
-63 47 45\r
-61 63 62\r
-63 61 65\r
-48 57 49\r
-57 48 66\r
-67 66 48\r
-46 67 48\r
-47 68 67\r
-46 47 67\r
-69 47 64\r
-47 69 68\r
-64 70 69\r
-70 64 71\r
-73 71 72\r
-71 73 70\r
-74 73 72\r
-75 74 56\r
-75 56 57\r
-74 75 73\r
-76 61 60\r
-61 76 65\r
-64 65 77\r
-65 64 63\r
-77 65 76\r
-78 77 76\r
-77 78 71\r
-77 71 64\r
-79 71 78\r
-71 79 72\r
-74 72 79\r
-80 74 79\r
-74 80 81\r
-56 81 82\r
-81 56 74\r
-55 56 82\r
-84 80 83\r
-80 84 81\r
-85 81 84\r
-81 85 82\r
-55 82 85\r
-86 55 85\r
-55 86 87\r
-51 55 87\r
-88 51 87\r
-51 88 52\r
-52 88 89\r
-53 52 89\r
-90 53 89\r
-89 91 90\r
-88 91 89\r
-90 91 92\r
-95 93 94\r
-96 94 93\r
-94 96 97\r
-98 97 96\r
-99 98 96\r
-98 99 100\r
-92 98 100\r
-90 92 100\r
-101 90 100\r
-102 101 100\r
-99 102 100\r
-102 99 103\r
-96 103 99\r
-103 96 104\r
-93 104 96\r
-106 93 105\r
-93 106 104\r
-107 104 106\r
-104 107 103\r
-108 103 107\r
-103 108 102\r
-101 102 109\r
-109 102 108\r
-101 109 110\r
-111 101 110\r
-101 111 53\r
-90 101 53\r
-39 40 54\r
-112 39 54\r
-39 112 38\r
-113 38 112\r
-38 113 37\r
-114 113 112\r
-115 114 112\r
-114 115 116\r
-118 115 117\r
-115 118 116\r
-120 117 119\r
-117 120 118\r
-123 121 122\r
-124 123 122\r
-125 124 122\r
-124 125 126\r
-127 119 121\r
-119 127 120\r
-128 119 117\r
-115 128 117\r
-128 115 53\r
-111 128 53\r
-128 111 110\r
-119 128 110\r
-121 119 110\r
-129 121 110\r
-109 129 110\r
-129 109 130\r
-115 54 53\r
-54 115 112\r
-127 121 123\r
-132 105 131\r
-105 132 106\r
-132 131 133\r
-133 131 134\r
-135 133 134\r
-133 135 136\r
-137 133 136\r
-138 133 137\r
-133 138 132\r
-139 132 138\r
-140 139 138\r
-141 140 138\r
-140 141 130\r
-109 140 130\r
-140 109 108\r
-139 140 108\r
-107 139 108\r
-142 136 135\r
-136 142 143\r
-144 143 142\r
-143 144 145\r
-147 145 146\r
-145 147 143\r
-124 147 146\r
-147 124 126\r
-121 125 122\r
-125 121 129\r
-141 129 130\r
-129 141 125\r
-126 137 147\r
-141 126 125\r
-126 141 137\r
-138 137 141\r
-147 136 143\r
-136 147 137\r
-132 107 106\r
-107 132 139\r
-28 29 31\r
-148 25 27\r
-25 148 149\r
-28 148 27\r
-148 28 150\r
-151 148 150\r
-148 151 149\r
-153 152 149\r
-151 153 149\r
-154 151 150\r
-151 154 155\r
-156 155 154\r
-158 156 157\r
-156 158 155\r
-151 155 158\r
-153 151 158\r
-149 152 25\r
-25 152 23\r
-152 21 23\r
-21 152 159\r
-153 159 152\r
-159 153 160\r
-158 160 153\r
-160 158 161\r
-162 161 158\r
-157 162 158\r
-157 163 162\r
-163 157 164\r
-156 164 157\r
-164 156 165\r
-164 165 166\r
-167 164 166\r
-164 167 163\r
-168 163 167\r
-166 169 167\r
-170 167 169\r
-172 170 171\r
-170 172 173\r
-174 172 171\r
-172 174 175\r
-172 176 177\r
-176 172 175\r
-179 176 178\r
-176 179 177\r
-181 178 180\r
-178 181 179\r
-183 181 182\r
-181 183 179\r
-184 179 183\r
-179 184 177\r
-173 177 184\r
-177 173 172\r
-167 173 185\r
-173 167 170\r
-167 185 168\r
-163 168 162\r
-186 162 168\r
-161 186 187\r
-188 161 187\r
-161 188 160\r
-189 160 188\r
-160 189 159\r
-159 189 19\r
-21 159 19\r
-190 19 189\r
-191 190 189\r
-19 190 16\r
-15 19 16\r
-192 16 190\r
-16 192 17\r
-193 17 192\r
-17 193 18\r
-194 193 192\r
-193 194 195\r
-190 194 192\r
-194 190 191\r
-188 191 189\r
-191 188 196\r
-194 196 197\r
-196 194 191\r
-198 194 197\r
-194 198 195\r
-199 198 197\r
-198 199 200\r
-201 200 199\r
-200 201 202\r
-203 202 201\r
-202 203 204\r
-183 182 205\r
-205 182 206\r
-207 205 206\r
-205 207 208\r
-173 184 185\r
-185 184 208\r
-168 185 208\r
-209 168 208\r
-168 209 210\r
-186 168 210\r
-211 186 210\r
-186 211 187\r
-196 187 211\r
-187 196 188\r
-199 196 211\r
-196 199 197\r
-210 199 211\r
-199 210 201\r
-209 201 210\r
-201 209 203\r
-207 203 209\r
-208 207 209\r
-204 207 206\r
-207 204 203\r
-162 186 161\r
-183 205 184\r
-205 208 184\r
-0 2 14\r
-26 32 29\r
-213 26 212\r
-26 24 212\r
-212 22 214\r
-22 212 24\r
-214 213 212\r
-213 214 215\r
-22 216 214\r
-216 22 20\r
-214 217 215\r
-217 214 216\r
-218 217 216\r
-216 14 218\r
-14 216 20\r
-221 219 220\r
-219 222 220\r
-5 223 224\r
-223 5 4\r
-224 225 226\r
-225 224 223\r
-227 226 225\r
-227 228 226\r
-227 229 228\r
-227 220 229\r
-227 230 220\r
-227 225 230\r
-230 221 220\r
-230 231 221\r
-230 232 231\r
-233 230 225\r
-230 233 232\r
-233 223 234\r
-223 233 225\r
-234 4 18\r
-4 234 223\r
-232 235 231\r
-235 236 231\r
-236 235 237\r
-236 238 239\r
-238 236 237\r
-239 240 241\r
-240 239 238\r
-241 242 243\r
-242 241 240\r
-242 244 243\r
-243 244 245\r
-245 246 247\r
-247 248 245\r
-222 249 220\r
-249 229 220\r
-222 250 249\r
-250 222 251\r
-251 252 250\r
-252 251 248\r
-248 247 252\r
-247 246 253\r
-247 253 254\r
-247 254 252\r
-254 255 252\r
-255 250 252\r
-250 256 249\r
-249 256 257\r
-256 250 255\r
-249 257 229\r
-257 258 229\r
-260 228 259\r
-228 260 226\r
-259 229 258\r
-229 259 228\r
-259 258 261\r
-258 262 261\r
-262 263 261\r
-262 258 257\r
-257 264 262\r
-264 257 265\r
-257 266 265\r
-266 257 267\r
-257 268 267\r
-268 269 270\r
-269 268 256\r
-268 257 256\r
-265 266 271\r
-266 267 271\r
-271 272 265\r
-272 273 265\r
-260 224 226\r
-224 260 274\r
-59 224 274\r
-224 59 5\r
-60 274 275\r
-274 60 59\r
-275 260 276\r
-260 275 274\r
-260 259 276\r
-259 261 276\r
-261 277 276\r
-278 261 263\r
-261 278 277\r
-276 279 275\r
-279 276 277\r
-265 280 264\r
-280 265 273\r
-280 281 264\r
-281 262 264\r
-282 263 281\r
-263 262 281\r
-278 282 283\r
-282 278 263\r
-283 284 278\r
-284 283 285\r
-287 285 286\r
-285 287 284\r
-286 288 287\r
-288 289 272\r
-272 289 273\r
-289 288 286\r
-60 279 76\r
-279 60 275\r
-290 277 278\r
-277 290 279\r
-279 290 76\r
-76 284 78\r
-284 76 290\r
-284 290 278\r
-284 79 78\r
-79 284 287\r
-287 288 79\r
-79 291 80\r
-291 79 288\r
-292 288 272\r
-288 292 291\r
-272 271 292\r
-83 291 293\r
-291 83 80\r
-293 292 294\r
-292 293 291\r
-292 271 294\r
-271 295 294\r
-295 271 296\r
-271 267 296\r
-267 297 296\r
-297 267 268\r
-297 268 298\r
-268 270 298\r
-270 299 298\r
-300 298 299\r
-300 297 298\r
-300 299 301\r
-93 95 302\r
-302 303 93\r
-303 302 304\r
-304 305 303\r
-305 306 303\r
-306 305 307\r
-305 301 307\r
-301 299 307\r
-299 308 307\r
-308 309 307\r
-307 310 306\r
-310 307 309\r
-306 311 303\r
-311 306 310\r
-311 93 303\r
-105 311 312\r
-311 105 93\r
-312 310 313\r
-310 312 311\r
-313 309 314\r
-309 313 310\r
-309 308 315\r
-309 315 314\r
-315 308 316\r
-308 317 316\r
-317 308 270\r
-308 299 270\r
-256 255 269\r
-255 318 269\r
-318 255 254\r
-254 319 318\r
-319 254 253\r
-319 320 318\r
-320 321 318\r
-321 320 322\r
-324 322 323\r
-322 324 321\r
-326 323 325\r
-323 326 324\r
-329 327 328\r
-327 330 328\r
-330 331 328\r
-331 330 332\r
-326 333 329\r
-333 326 325\r
-326 334 324\r
-334 321 324\r
-321 334 270\r
-334 317 270\r
-317 334 316\r
-334 326 316\r
-326 329 316\r
-329 335 316\r
-316 336 315\r
-336 316 335\r
-269 321 270\r
-321 269 318\r
-329 333 327\r
-131 312 337\r
-312 131 105\r
-131 337 338\r
-131 338 134\r
-134 339 135\r
-339 134 338\r
-338 340 339\r
-338 341 340\r
-341 338 337\r
-337 342 341\r
-342 343 341\r
-343 344 341\r
-344 343 336\r
-343 315 336\r
-315 343 314\r
-343 342 314\r
-342 313 314\r
-135 345 142\r
-345 135 339\r
-142 346 144\r
-346 142 345\r
-348 345 347\r
-345 348 346\r
-348 332 330\r
-332 348 347\r
-328 335 329\r
-335 328 331\r
-336 331 344\r
-331 336 335\r
-340 332 347\r
-331 340 344\r
-340 331 332\r
-340 341 344\r
-345 340 347\r
-340 345 339\r
-312 342 337\r
-342 312 313\r
-245 244 246\r
-242 349 350\r
-349 242 240\r
-350 244 242\r
-244 350 351\r
-350 352 351\r
-352 350 349\r
-354 353 349\r
-353 352 349\r
-351 355 356\r
-355 351 352\r
-355 357 356\r
-359 355 358\r
-355 359 357\r
-355 352 358\r
-352 353 358\r
-354 349 240\r
-354 240 238\r
-238 360 354\r
-360 238 237\r
-354 361 353\r
-361 354 360\r
-353 362 358\r
-362 353 361\r
-362 363 358\r
-363 359 358\r
-363 364 359\r
-364 363 365\r
-359 366 357\r
-366 359 364\r
-366 364 367\r
-367 365 368\r
-365 367 364\r
-365 369 368\r
-370 367 368\r
-368 371 370\r
-374 372 373\r
-372 374 371\r
-374 375 376\r
-375 374 373\r
-377 375 373\r
-375 377 378\r
-380 377 379\r
-377 380 378\r
-180 379 181\r
-379 180 380\r
-182 379 381\r
-379 182 181\r
-381 377 382\r
-377 381 379\r
-382 373 372\r
-373 382 377\r
-383 371 368\r
-371 383 372\r
-383 368 369\r
-369 365 363\r
-363 384 369\r
-384 362 385\r
-385 361 386\r
-361 385 362\r
-386 360 387\r
-360 386 361\r
-387 360 235\r
-360 237 235\r
-235 388 387\r
-388 389 387\r
-388 235 233\r
-235 232 233\r
-233 390 388\r
-390 233 234\r
-234 193 390\r
-193 234 18\r
-390 195 391\r
-195 390 193\r
-390 389 388\r
-389 390 391\r
-387 392 386\r
-392 387 389\r
-393 389 391\r
-389 393 392\r
-393 195 198\r
-195 393 391\r
-393 200 394\r
-200 393 198\r
-394 202 395\r
-202 394 200\r
-395 204 396\r
-204 395 202\r
-182 381 397\r
-182 397 206\r
-397 398 206\r
-398 397 399\r
-382 372 383\r
-382 383 399\r
-383 369 399\r
-369 400 399\r
-400 369 401\r
-369 384 401\r
-401 385 402\r
-385 401 384\r
-402 386 392\r
-386 402 385\r
-402 393 394\r
-393 402 392\r
-394 401 402\r
-401 394 395\r
-401 396 400\r
-396 401 395\r
-396 398 400\r
-398 399 400\r
-206 396 204\r
-396 206 398\r
-384 363 362\r
-397 381 382\r
-399 397 382\r
-219 221 231\r
-248 243 245\r
-243 403 404\r
-241 243 404\r
-405 241 404\r
-241 405 239\r
-404 406 405\r
-406 404 403\r
-405 236 239\r
-236 405 407\r
-406 407 405\r
-407 406 408\r
-408 409 407\r
-231 407 409\r
-407 231 236\r
+++ /dev/null
-0 -10 -5\r
-0 -10 5\r
--20 -10 -5\r
--20 -10 5\r
--20 0 -5\r
--20 0 5\r
-0 10 -5\r
-0 10 5\r
-30 10 0\r
-10 0 -5\r
-10 0 5\r
-30 0 0\r
-40 10 0\r
-40 20 0\r
--30 15 -3\r
--30 15 3\r
-30 15 -3\r
-30 15 3\r
-999 999 999\r
-0 1\r
-2 3\r
-0 2\r
-1 3\r
-4 5\r
-2 4\r
-3 5\r
-4 0\r
-5 1\r
-6 7\r
-4 6\r
-5 7\r
-6 0\r
-7 1\r
-6 8\r
-7 8\r
-9 10\r
-6 9\r
-7 10\r
-0 9\r
-1 10\r
-9 11\r
-10 11\r
-11 12\r
-12 13\r
-13 8\r
-14 15\r
-16 17\r
-14 17\r
-15 16\r
-999 999
\ No newline at end of file
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
-<!-- 2025-07-29 ti 03:08 -->
+<!-- 2025-07-29 ti 04:02 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Miscellaneous 3D graphics demos</title>
<h2>Table of Contents</h2>
<div id="text-table-of-contents" role="doc-toc">
<ul>
-<li><a href="#orgb924a7a">1. Rotating exclamation mark</a></li>
-<li><a href="#org936edd2">2. 3D bouncing ball</a></li>
-<li><a href="#org28da862">3. 3D text in a room</a></li>
-<li><a href="#orgdf64df9">4. 3D bouncing cubes on grid floor</a></li>
-<li><a href="#orga5d0129">5. Matrix math for rotation in 3D space</a></li>
-<li><a href="#org9c405ef">6. Maze explorer</a></li>
-<li><a href="#org2131992">7. Tank animation</a></li>
-<li><a href="#orga1c32d2">8. Tiled room</a></li>
+<li><a href="#orgb974a71">1. Rotating exclamation mark</a></li>
+<li><a href="#orgd51b00c">2. 3D bouncing ball</a></li>
+<li><a href="#org2cc3d7f">3. 3D text in a room</a></li>
+<li><a href="#org8aa5b7c">4. 3D bouncing cubes on grid floor</a></li>
+<li><a href="#org790a2b1">5. Matrix math for rotation in 3D space</a></li>
+<li><a href="#org81916bf">6. Maze explorer</a></li>
+<li><a href="#org0bbcb91">7. Tank animation</a></li>
+<li><a href="#orgc1509dd">8. Tiled room</a></li>
</ul>
</div>
</div>
}
</style>
-<div id="outline-container-orgb924a7a" class="outline-2">
-<h2 id="orgb924a7a"><span class="section-number-2">1.</span> Rotating exclamation mark</h2>
+<div id="outline-container-orgb974a71" class="outline-2">
+<h2 id="orgb974a71"><span class="section-number-2">1.</span> Rotating exclamation mark</h2>
<div class="outline-text-2" id="text-1">
<p>
Wireframe 3D model of a rotating exclamation mark.
</div>
</div>
-<div id="outline-container-org936edd2" class="outline-2">
-<h2 id="org936edd2"><span class="section-number-2">2.</span> 3D bouncing ball</h2>
+<div id="outline-container-orgd51b00c" class="outline-2">
+<h2 id="orgd51b00c"><span class="section-number-2">2.</span> 3D bouncing ball</h2>
<div class="outline-text-2" id="text-2">
<p>
This QBasic program creates a visually engaging 3D animation of a
</div>
</div>
-<div id="outline-container-org28da862" class="outline-2">
-<h2 id="org28da862"><span class="section-number-2">3.</span> 3D text in a room</h2>
+<div id="outline-container-org2cc3d7f" class="outline-2">
+<h2 id="org2cc3d7f"><span class="section-number-2">3.</span> 3D text in a room</h2>
<div class="outline-text-2" id="text-3">
<p>
Wireframe 3D text hanging in a wireframe 3D room. User can look and
</div>
</div>
-<div id="outline-container-orgdf64df9" class="outline-2">
-<h2 id="orgdf64df9"><span class="section-number-2">4.</span> 3D bouncing cubes on grid floor</h2>
+<div id="outline-container-org8aa5b7c" class="outline-2">
+<h2 id="org8aa5b7c"><span class="section-number-2">4.</span> 3D bouncing cubes on grid floor</h2>
<div class="outline-text-2" id="text-4">
<p>
3D wireframe cubes bouncing on a grid floor, creating an immersive and
</div>
</div>
-<div id="outline-container-orga5d0129" class="outline-2">
-<h2 id="orga5d0129"><span class="section-number-2">5.</span> Matrix math for rotation in 3D space</h2>
+<div id="outline-container-org790a2b1" class="outline-2">
+<h2 id="org790a2b1"><span class="section-number-2">5.</span> Matrix math for rotation in 3D space</h2>
<div class="outline-text-2" id="text-5">
<p>
Instead of combining simple 2D rotors, pixels in this 3D space are
</div>
</div>
-<div id="outline-container-org9c405ef" class="outline-2">
-<h2 id="org9c405ef"><span class="section-number-2">6.</span> Maze explorer</h2>
+<div id="outline-container-org81916bf" class="outline-2">
+<h2 id="org81916bf"><span class="section-number-2">6.</span> Maze explorer</h2>
<div class="outline-text-2" id="text-6">
<p>
The Evolving 3D Maze Explorer is a QBasic program that generates and
</p>
-<div id="org18556fb" class="figure">
+<div id="orgc47a030" class="figure">
<p><a href="Maze%20explorer.bas" class="responsive-img"><img src="Maze%20explorer.png" alt="Maze%20explorer.png" class="responsive-img" /></a>
</p>
</div>
</div>
</div>
-<div id="outline-container-org2131992" class="outline-2">
-<h2 id="org2131992"><span class="section-number-2">7.</span> Tank animation</h2>
+<div id="outline-container-org0bbcb91" class="outline-2">
+<h2 id="org0bbcb91"><span class="section-number-2">7.</span> Tank animation</h2>
<div class="outline-text-2" id="text-7">
<p>
Animated tank driving through the bridge back and forward. User can
</div>
</div>
-<div id="outline-container-orga1c32d2" class="outline-2">
-<h2 id="orga1c32d2"><span class="section-number-2">8.</span> Tiled room</h2>
+<div id="outline-container-orgc1509dd" class="outline-2">
+<h2 id="orgc1509dd"><span class="section-number-2">8.</span> Tiled room</h2>
<div class="outline-text-2" id="text-8">
<p>
Room with some tiles on the wall and on the floor. User can freely fly
</div>
</div>
<div id="postamble" class="status">
-<p class="date">Created: 2025-07-29 ti 03:08</p>
+<p class="date">Created: 2025-07-29 ti 04:02</p>
<p class="validation"><a href="https://validator.w3.org/check?uri=referer">Validate</a></p>
</div>
</body>
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
-<!-- 2025-07-29 ti 03:08 -->
+<!-- 2025-07-29 ti 04:02 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Space themed 3D graphics</title>
<h2>Table of Contents</h2>
<div id="text-table-of-contents" role="doc-toc">
<ul>
-<li><a href="#orga620c09">1. Galaxy explorer</a></li>
-<li><a href="#org6a18994">2. Rocket simulator</a></li>
-<li><a href="#org2a8c3d5">3. Stars</a></li>
-<li><a href="#orgee560d0">4. Universe explorer</a></li>
+<li><a href="#org4f479df">1. Galaxy explorer</a></li>
+<li><a href="#orgbdc2b71">2. Rocket simulator</a></li>
+<li><a href="#orge996af4">3. Stars</a></li>
+<li><a href="#org8c60191">4. Universe explorer</a></li>
</ul>
</div>
</div>
}
</style>
-<div id="outline-container-orga620c09" class="outline-2">
-<h2 id="orga620c09"><span class="section-number-2">1.</span> Galaxy explorer</h2>
+<div id="outline-container-org4f479df" class="outline-2">
+<h2 id="org4f479df"><span class="section-number-2">1.</span> Galaxy explorer</h2>
<div class="outline-text-2" id="text-1">
<p>
This QBasic program renders a navigable 3D point cloud galaxy,
</p>
-<div id="orgb61875a" class="figure">
+<div id="org843b2e5" class="figure">
<p><a href="Galaxy%20explorer.bas" class="responsive-img"><img src="Galaxy%20explorer.png" alt="Galaxy%20explorer.png" class="responsive-img" /></a>
</p>
</div>
</div>
</div>
-<div id="outline-container-org6a18994" class="outline-2">
-<h2 id="org6a18994"><span class="section-number-2">2.</span> Rocket simulator</h2>
+<div id="outline-container-orgbdc2b71" class="outline-2">
+<h2 id="orgbdc2b71"><span class="section-number-2">2.</span> Rocket simulator</h2>
<div class="outline-text-2" id="text-2">
<p>
QBasic program that simulates the takeoff and flight of a rocket from
</div>
</div>
-<div id="outline-container-org2a8c3d5" class="outline-2">
-<h2 id="org2a8c3d5"><span class="section-number-2">3.</span> Stars</h2>
+<div id="outline-container-orge996af4" class="outline-2">
+<h2 id="orge996af4"><span class="section-number-2">3.</span> Stars</h2>
<div class="outline-text-2" id="text-3">
<p>
The 3D Starfield Simulation is a QBasic program that creates a
</div>
</div>
-<div id="outline-container-orgee560d0" class="outline-2">
-<h2 id="orgee560d0"><span class="section-number-2">4.</span> Universe explorer</h2>
+<div id="outline-container-org8c60191" class="outline-2">
+<h2 id="org8c60191"><span class="section-number-2">4.</span> Universe explorer</h2>
<div class="outline-text-2" id="text-4">
<p>
This QBasic program that simulates a navigable 3D universe. Users can
</dl>
-<div id="org2d55013" class="figure">
+<div id="orgfeb800b" class="figure">
<p><a href="Universe%20explorer/Universe%20explorer.bas" class="responsive-img"><img src="Universe%20explorer/1.png" alt="1.png" class="responsive-img" /></a>
</p>
</div>
-<div id="org2003483" class="figure">
+<div id="orgb713cda" class="figure">
<p><a href="Universe%20explorer/Universe%20explorer.bas" class="responsive-img"><img src="Universe%20explorer/2.png" alt="2.png" class="responsive-img" /></a>
</p>
</div>
-<div id="orgc45e0da" class="figure">
+<div id="orgc1539ee" class="figure">
<p><a href="Universe%20explorer/Universe%20explorer.bas" class="responsive-img"><img src="Universe%20explorer/3.png" alt="3.png" class="responsive-img" /></a>
</p>
</div>
</div>
</div>
<div id="postamble" class="status">
-<p class="date">Created: 2025-07-29 ti 03:08</p>
+<p class="date">Created: 2025-07-29 ti 04:02</p>
<p class="validation"><a href="https://validator.w3.org/check?uri=referer">Validate</a></p>
</div>
</body>
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
-<!-- 2025-07-29 ti 03:29 -->
+<!-- 2025-07-29 ti 04:02 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Plotting</title>
<h2>Table of Contents</h2>
<div id="text-table-of-contents" role="doc-toc">
<ul>
-<li><a href="#org0872694">1. 2D graph</a></li>
-<li><a href="#org5fc76c6">2. 3D graph</a></li>
-<li><a href="#org6205eea">3. Deriviative calculator</a></li>
-<li><a href="#org79d74b6">4. Sine and cosine table</a></li>
+<li><a href="#orgd129385">1. 2D graph</a></li>
+<li><a href="#orgc1b06d8">2. 3D graph</a></li>
+<li><a href="#org3de897f">3. Deriviative calculator</a></li>
+<li><a href="#org4186cee">4. Sine and cosine table</a></li>
</ul>
</div>
</div>
}
</style>
-<div id="outline-container-org0872694" class="outline-2">
-<h2 id="org0872694"><span class="section-number-2">1.</span> 2D graph</h2>
+<div id="outline-container-orgd129385" class="outline-2">
+<h2 id="orgd129385"><span class="section-number-2">1.</span> 2D graph</h2>
<div class="outline-text-2" id="text-1">
<p>
The 2D Graph Plotter is a simple yet effective program written in
</p>
-<div id="org6145a94" class="figure">
+<div id="org1fd8bf4" class="figure">
<p><a href="2D%20graph%20plot.bas" class="responsive-img"><img src="2D%20graph%20plot.png" alt="2D%20graph%20plot.png" class="responsive-img" /></a>
</p>
</div>
</div>
</div>
-<div id="outline-container-org5fc76c6" class="outline-2">
-<h2 id="org5fc76c6"><span class="section-number-2">2.</span> 3D graph</h2>
+<div id="outline-container-orgc1b06d8" class="outline-2">
+<h2 id="orgc1b06d8"><span class="section-number-2">2.</span> 3D graph</h2>
<div class="outline-text-2" id="text-2">
<p>
The 3D Heightmap Explorer is a QBasic program designed to visualize
</p>
-<div id="org4ff9548" class="figure">
+<div id="org23cf8ce" class="figure">
<p><a href="3D%20graph.bas" class="responsive-img"><img src="3D%20graph.png" alt="3D%20graph.png" class="responsive-img" /></a>
</p>
</div>
</div>
</div>
-<div id="outline-container-org6205eea" class="outline-2">
-<h2 id="org6205eea"><span class="section-number-2">3.</span> Deriviative calculator</h2>
+<div id="outline-container-org3de897f" class="outline-2">
+<h2 id="org3de897f"><span class="section-number-2">3.</span> Deriviative calculator</h2>
<div class="outline-text-2" id="text-3">
<p>
This QBasic program is designed to compute and plot an arbitrary
</p>
-<div id="org29b9361" class="figure">
+<div id="org039948c" class="figure">
<p><a href="Deriviative%20calculator.bas" class="responsive-img"><img src="Deriviative%20calculator.png" alt="Deriviative%20calculator.png" class="responsive-img" /></a>
</p>
</div>
</div>
</div>
-<div id="outline-container-org79d74b6" class="outline-2">
-<h2 id="org79d74b6"><span class="section-number-2">4.</span> Sine and cosine table</h2>
+<div id="outline-container-org4186cee" class="outline-2">
+<h2 id="org4186cee"><span class="section-number-2">4.</span> Sine and cosine table</h2>
<div class="outline-text-2" id="text-4">
<p>
The SIN & COS Table Generator is a QBasic program designed to visually
</p>
-<div id="orge4c445c" class="figure">
+<div id="org3d31c83" class="figure">
<p><a href="Sine%20and%20cosine%20table.bas" class="responsive-img"><img src="Sine%20and%20cosine%20table.png" alt="Sine%20and%20cosine%20table.png" class="responsive-img" /></a>
</p>
</div>
</div>
</div>
<div id="postamble" class="status">
-<p class="date">Created: 2025-07-29 ti 03:29</p>
+<p class="date">Created: 2025-07-29 ti 04:02</p>
<p class="validation"><a href="https://validator.w3.org/check?uri=referer">Validate</a></p>
</div>
</body>
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
-<!-- 2025-07-29 ti 03:58 -->
+<!-- 2025-07-29 ti 04:02 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Simulation</title>
<h2>Table of Contents</h2>
<div id="text-table-of-contents" role="doc-toc">
<ul>
-<li><a href="#org187906b">1. Explosion simulator</a></li>
-<li><a href="#org5e5f63c">2. Gravity in 2D</a></li>
-<li><a href="#org959c6bb">3. Gravity in 3D</a></li>
-<li><a href="#orgaad08ff">4. Interference</a></li>
-<li><a href="#orgfcd4eec">5. Interferogram</a></li>
-<li><a href="#org6429047">6. Surface tension</a></li>
-<li><a href="#orgba5018d">7. Wave 1</a></li>
-<li><a href="#orgce1b523">8. Wave 2</a></li>
+<li><a href="#orgc32a816">1. Explosion simulator</a></li>
+<li><a href="#org2d7700e">2. Gravity in 2D</a></li>
+<li><a href="#orge771117">3. Gravity in 3D</a></li>
+<li><a href="#orgb38c459">4. Interference</a></li>
+<li><a href="#org983c436">5. Interferogram</a></li>
+<li><a href="#org7a5c6de">6. Surface tension</a></li>
+<li><a href="#orge8ff5f6">7. Wave 1</a></li>
+<li><a href="#orgc5fb347">8. Wave 2</a></li>
</ul>
</div>
</div>
}
</style>
-<div id="outline-container-org187906b" class="outline-2">
-<h2 id="org187906b"><span class="section-number-2">1.</span> Explosion simulator</h2>
+<div id="outline-container-orgc32a816" class="outline-2">
+<h2 id="orgc32a816"><span class="section-number-2">1.</span> Explosion simulator</h2>
<div class="outline-text-2" id="text-1">
<p>
This QBasic program simulates the propagation of shock waves in a gas
</p>
-<div id="org4b80f69" class="figure">
+<div id="orgdd9b75d" class="figure">
<p><a href="Explosion%20simulator.bas" class="responsive-img"><img src="Explosion%20simulator.png" alt="Explosion%20simulator.png" class="responsive-img" /></a>
</p>
</div>
</div>
</div>
-<div id="outline-container-org5e5f63c" class="outline-2">
-<h2 id="org5e5f63c"><span class="section-number-2">2.</span> Gravity in 2D</h2>
+<div id="outline-container-org2d7700e" class="outline-2">
+<h2 id="org2d7700e"><span class="section-number-2">2.</span> Gravity in 2D</h2>
<div class="outline-text-2" id="text-2">
<p>
The Gravitation Simulation program is a simple yet insightful QBasic
</p>
-<div id="org2742953" class="figure">
+<div id="org738b9a8" class="figure">
<p><a href="Gravity%20in%202D.bas" class="responsive-img"><img src="Gravity%20in%202D.png" alt="Gravity%20in%202D.png" class="responsive-img" /></a>
</p>
</div>
</div>
</div>
-<div id="outline-container-org959c6bb" class="outline-2">
-<h2 id="org959c6bb"><span class="section-number-2">3.</span> Gravity in 3D</h2>
+<div id="outline-container-orge771117" class="outline-2">
+<h2 id="orge771117"><span class="section-number-2">3.</span> Gravity in 3D</h2>
<div class="outline-text-2" id="text-3">
<p>
This QBasic program simulates the gravitational interactions between
</div>
</div>
-<div id="outline-container-orgaad08ff" class="outline-2">
-<h2 id="orgaad08ff"><span class="section-number-2">4.</span> Interference</h2>
+<div id="outline-container-orgb38c459" class="outline-2">
+<h2 id="orgb38c459"><span class="section-number-2">4.</span> Interference</h2>
<div class="outline-text-2" id="text-4">
<p>
This QBasic program simulates the interference pattern created by two
</div>
</div>
-<div id="outline-container-orgfcd4eec" class="outline-2">
-<h2 id="orgfcd4eec"><span class="section-number-2">5.</span> Interferogram</h2>
+<div id="outline-container-org983c436" class="outline-2">
+<h2 id="org983c436"><span class="section-number-2">5.</span> Interferogram</h2>
<div class="outline-text-2" id="text-5">
<p>
This QBasic program simulates the interference pattern created by
</p>
-<div id="org39ac305" class="figure">
+<div id="orgb2a3e4f" class="figure">
<p><a href="Interferogram.bas" class="responsive-img"><img src="Interferogram.png" alt="Interferogram.png" class="responsive-img" /></a>
</p>
</div>
</div>
</div>
-<div id="outline-container-org6429047" class="outline-2">
-<h2 id="org6429047"><span class="section-number-2">6.</span> Surface tension</h2>
+<div id="outline-container-org7a5c6de" class="outline-2">
+<h2 id="org7a5c6de"><span class="section-number-2">6.</span> Surface tension</h2>
<div class="outline-text-2" id="text-6">
<p>
This QBasic program simulates the behavior of water spills and the
</p>
-<div id="org9e2b24d" class="figure">
+<div id="orgb031602" class="figure">
<p><a href="Surface%20tension.bas" class="responsive-img"><img src="Surface%20tension.png" alt="Surface%20tension.png" class="responsive-img" /></a>
</p>
</div>
</div>
</div>
-<div id="outline-container-orgba5018d" class="outline-2">
-<h2 id="orgba5018d"><span class="section-number-2">7.</span> Wave 1</h2>
+<div id="outline-container-orge8ff5f6" class="outline-2">
+<h2 id="orge8ff5f6"><span class="section-number-2">7.</span> Wave 1</h2>
<div class="outline-text-2" id="text-7">
<p>
This QBasic program simulates the propagation of waves across a
</p>
-<div id="org820684a" class="figure">
+<div id="org12c825f" class="figure">
<p><a href="Wave%201.bas" class="responsive-img"><img src="Wave%201.png" alt="Wave%201.png" class="responsive-img" /></a>
</p>
</div>
</div>
</div>
-<div id="outline-container-orgce1b523" class="outline-2">
-<h2 id="orgce1b523"><span class="section-number-2">8.</span> Wave 2</h2>
+<div id="outline-container-orgc5fb347" class="outline-2">
+<h2 id="orgc5fb347"><span class="section-number-2">8.</span> Wave 2</h2>
<div class="outline-text-2" id="text-8">
<p>
This QBasic program simulates and visualizes the behavior of water
</p>
-<div id="org2e6254c" class="figure">
+<div id="org4e74694" class="figure">
<p><a href="Wave%202.bas" class="responsive-img"><img src="Wave%202.png" alt="Wave%202.png" class="responsive-img" /></a>
</p>
</div>
</div>
</div>
<div id="postamble" class="status">
-<p class="date">Created: 2025-07-29 ti 03:58</p>
+<p class="date">Created: 2025-07-29 ti 04:02</p>
<p class="validation"><a href="https://validator.w3.org/check?uri=referer">Validate</a></p>
</div>
</body>
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
-<!-- 2025-05-31 la 07:09 -->
+<!-- 2025-07-29 ti 04:03 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Truth table calculator</title>
<h2>Table of Contents</h2>
<div id="text-table-of-contents" role="doc-toc">
<ul>
-<li><a href="#org553b118">1. Implemented logical operations</a>
+<li><a href="#orgfc89990">1. Implemented logical operations</a>
<ul>
-<li><a href="#org9c9ba62">1.1. Equivalent ( ⇔ , 1 )</a></li>
-<li><a href="#org2c565cf">1.2. Implies ( ⇒ , 2 )</a></li>
-<li><a href="#org8fd4c7b">1.3. OR ( ∨ , 3 )</a></li>
-<li><a href="#org422252e">1.4. AND ( ∧ , 4 )</a></li>
-<li><a href="#orga0458d5">1.5. NOT ( ¬ , 5 )</a></li>
+<li><a href="#org0363adb">1.1. Equivalent ( ⇔ , 1 )</a></li>
+<li><a href="#org6a8cb68">1.2. Implies ( ⇒ , 2 )</a></li>
+<li><a href="#orga377946">1.3. OR ( ∨ , 3 )</a></li>
+<li><a href="#org6aff8b8">1.4. AND ( ∧ , 4 )</a></li>
+<li><a href="#org72dc863">1.5. NOT ( ¬ , 5 )</a></li>
</ul>
</li>
-<li><a href="#org375fe5b">2. Examples</a>
+<li><a href="#orgaa94500">2. Examples</a>
<ul>
-<li><a href="#org2167e31">2.1. Example: (A ∧ B) ∨ ¬C</a></li>
-<li><a href="#org0a783a3">2.2. Example: A ⇒ (B ∨ ¬C)</a></li>
-<li><a href="#org20994f3">2.3. Example: (A ⇔ B) ∧ C</a></li>
+<li><a href="#orgd435c7d">2.1. Example: (A ∧ B) ∨ ¬C</a></li>
+<li><a href="#org2e83b23">2.2. Example: A ⇒ (B ∨ ¬C)</a></li>
+<li><a href="#orgc5a0e6d">2.3. Example: (A ⇔ B) ∧ C</a></li>
</ul>
</li>
</ul>
designing and understanding digital circuits, Boolean algebra, and logical expressions.
</p>
-<div id="outline-container-org553b118" class="outline-2">
-<h2 id="org553b118"><span class="section-number-2">1.</span> Implemented logical operations</h2>
+<div id="outline-container-orgfc89990" class="outline-2">
+<h2 id="orgfc89990"><span class="section-number-2">1.</span> Implemented logical operations</h2>
<div class="outline-text-2" id="text-1">
</div>
-<div id="outline-container-org9c9ba62" class="outline-3">
-<h3 id="org9c9ba62"><span class="section-number-3">1.1.</span> Equivalent ( ⇔ , 1 )</h3>
+<div id="outline-container-org0363adb" class="outline-3">
+<h3 id="org0363adb"><span class="section-number-3">1.1.</span> Equivalent ( ⇔ , 1 )</h3>
<div class="outline-text-3" id="text-1-1">
<p>
The equivalent operation, also known as logical biconditional, is true if and only if
</div>
</div>
-<div id="outline-container-org2c565cf" class="outline-3">
-<h3 id="org2c565cf"><span class="section-number-3">1.2.</span> Implies ( ⇒ , 2 )</h3>
+<div id="outline-container-org6a8cb68" class="outline-3">
+<h3 id="org6a8cb68"><span class="section-number-3">1.2.</span> Implies ( ⇒ , 2 )</h3>
<div class="outline-text-3" id="text-1-2">
<p>
An implication asserts that if the first proposition is true, the
</div>
</div>
-<div id="outline-container-org8fd4c7b" class="outline-3">
-<h3 id="org8fd4c7b"><span class="section-number-3">1.3.</span> OR ( ∨ , 3 )</h3>
+<div id="outline-container-orga377946" class="outline-3">
+<h3 id="orga377946"><span class="section-number-3">1.3.</span> OR ( ∨ , 3 )</h3>
<div class="outline-text-3" id="text-1-3">
<p>
The OR operation, also known as logical disjunction, is true if at
</div>
</div>
-<div id="outline-container-org422252e" class="outline-3">
-<h3 id="org422252e"><span class="section-number-3">1.4.</span> AND ( ∧ , 4 )</h3>
+<div id="outline-container-org6aff8b8" class="outline-3">
+<h3 id="org6aff8b8"><span class="section-number-3">1.4.</span> AND ( ∧ , 4 )</h3>
<div class="outline-text-3" id="text-1-4">
<p>
The AND operation, also known as logical conjunction, is true if and
</div>
</div>
-<div id="outline-container-orga0458d5" class="outline-3">
-<h3 id="orga0458d5"><span class="section-number-3">1.5.</span> NOT ( ¬ , 5 )</h3>
+<div id="outline-container-org72dc863" class="outline-3">
+<h3 id="org72dc863"><span class="section-number-3">1.5.</span> NOT ( ¬ , 5 )</h3>
<div class="outline-text-3" id="text-1-5">
<p>
The NOT operation, also known as logical negation, inverts the value
</div>
</div>
</div>
-<div id="outline-container-org375fe5b" class="outline-2">
-<h2 id="org375fe5b"><span class="section-number-2">2.</span> Examples</h2>
+<div id="outline-container-orgaa94500" class="outline-2">
+<h2 id="orgaa94500"><span class="section-number-2">2.</span> Examples</h2>
<div class="outline-text-2" id="text-2">
</div>
-<div id="outline-container-org2167e31" class="outline-3">
-<h3 id="org2167e31"><span class="section-number-3">2.1.</span> Example: (A ∧ B) ∨ ¬C</h3>
+<div id="outline-container-orgd435c7d" class="outline-3">
+<h3 id="orgd435c7d"><span class="section-number-3">2.1.</span> Example: (A ∧ B) ∨ ¬C</h3>
<div class="outline-text-3" id="text-2-1">
<table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
</div>
</div>
-<div id="outline-container-org0a783a3" class="outline-3">
-<h3 id="org0a783a3"><span class="section-number-3">2.2.</span> Example: A ⇒ (B ∨ ¬C)</h3>
+<div id="outline-container-org2e83b23" class="outline-3">
+<h3 id="org2e83b23"><span class="section-number-3">2.2.</span> Example: A ⇒ (B ∨ ¬C)</h3>
<div class="outline-text-3" id="text-2-2">
<table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
</div>
</div>
-<div id="outline-container-org20994f3" class="outline-3">
-<h3 id="org20994f3"><span class="section-number-3">2.3.</span> Example: (A ⇔ B) ∧ C</h3>
+<div id="outline-container-orgc5a0e6d" class="outline-3">
+<h3 id="orgc5a0e6d"><span class="section-number-3">2.3.</span> Example: (A ⇔ B) ∧ C</h3>
<div class="outline-text-3" id="text-2-3">
<p>
Truth Table:
</div>
</div>
<div id="postamble" class="status">
-<p class="date">Created: 2025-05-31 la 07:09</p>
+<p class="date">Created: 2025-07-29 ti 04:03</p>
<p class="validation"><a href="https://validator.w3.org/check?uri=referer">Validate</a></p>
</div>
</body>
** Helicopter demo
-TODO: description goes here ...
+This QBasic program is a demonstration of real-time 3D graphics
+rendering. Also it shows 3D transformations, fractal terrain
+generation, and simple animation.
-#+attr_html: :class responsive-img
-#+attr_latex: :width 1000px
-[[file:3D%20GFX/Helicopter/demo,%201.png][file:3D%20GFX/Helicopter/demo,%201.png]]
+A fractal algorithm is used to create a realistic terrain by
+iteratively subdividing and perturbing pixel values.
-#+attr_html: :class responsive-img
-#+attr_latex: :width 1000px
-[[file:3D%20GFX/Helicopter/demo,%202.png][file:3D%20GFX/Helicopter/demo,%202.png]]
+The program includes an animated sequence featuring a helicopter that
+moves across the terrain and picks up objects.
#+attr_html: :class responsive-img
#+attr_latex: :width 1000px
-[[file:3D%20GFX/Helicopter/demo,%203.png][file:3D%20GFX/Helicopter/demo,%203.png]]
+[[file:3D%20GFX/Helicopter/Helicopter.bas][file:3D%20GFX/Helicopter/screenshot,%201.png]]
#+attr_html: :class responsive-img
#+attr_latex: :width 1000px
-[[file:3D%20GFX/Helicopter/demo,%204.png][file:3D%20GFX/Helicopter/demo,%204.png]]
+[[file:3D%20GFX/Helicopter/Helicopter.bas][file:3D%20GFX/Helicopter/screenshot,%202.png]]
[[https://www2.svjatoslav.eu/gitweb/?p=qbasicapps.git;a=tree;f=3D+GFX/Helicopter;hb=HEAD][Project files]]