NaaLaa
Textured polygons helper functions - Printable Version

+- NaaLaa (https://www.naalaa.com/forum)
+-- Forum: NaaLaa (https://www.naalaa.com/forum/forum-1.html)
+--- Forum: NaaLaa 7 Code (https://www.naalaa.com/forum/forum-4.html)
+--- Thread: Textured polygons helper functions (/thread-96.html)



Textured polygons helper functions - Marcus - 03-06-2024

'draw poly image' can be hard to use and make sense of, so here is an example program with some helper functions.


RE: Textured polygons helper functions - 1micha.elok - 03-07-2024

(03-06-2024, 03:58 PM)Marcus Wrote: 'draw poly image' can be hard to use and make sense of, so here is an example program with some helper functions.

Awesome, I can make a rabbit with alien skin  Big Grin 
   
click to zoom in the image

Thank you, Marcus, for creating poly* familes in Naalaa  Cool
I would like to summarize what I have learned so far.
Comparing the difference between coordinates and how each one is used for :
- Polyline     which can be generated using Poly_Editor.exe (Naalaa 6). To be used as a PATH
- Polyimage which needs some adjustment for texture                        To be used as a TEXTURE
- Polygon     which needs some adjustment to move each point           To be used as a SHAPE

Code:
'-----------------
' INITIALIZATION
'-----------------
include "assets/polyline.n7"
include "assets/polyimage.n7"
set window "Rabbit's Face", 640, 480
set redraw off

'color definition
black_alpha = [0,0,0,24]
white       = [255,255,255]
red         = [255,0,0]

'------ Polyline --------
'made by Poly_Editor.exe (N6)
rabbit_ =
[[-160, -160], [-60, -120], [-40, -40],
[40, -40], [60, -120], [160, -160],
[120, -60], [60, -40], [120, 40],
[120, 80], [80, 120], [0, 140],
[-80, 120], [-120, 80], [-120, 40],
[-60, -40], [-120, -60],[-160,-160]]
path = PolyLine(rabbit_)
distance    = 1
move_pixel  = 4

'------- Polyimage --------
'rabbit polygon, 0 = textures
rabbit = [
-160, -160, 0,0,-60, -120, 0,0,-40, -40,0,0,
40, -40, 0,0, 60, -120, 0,0, 160, -160, 0,0,
120, -60,0,0, 60, -40,0,0, 120, 40, 0,0,
120, 80, 0,0, 80, 120, 0,0, 0, 140, 0,0,
-80, 120,0,0, -120, 80,0,0, -120, 40,0,0,
-60, -40,0,0, -120, -60,0,0]
texture = loadimage("assets/texture_alien.png")
MapPolyImageCoords(rabbit, texture)         

'-------- Polygon ------------
x = width(primary)/2; y = height(primary)/2; s = 1
rab_bit =
[-160+x, -160+y, -60+x, -120+y,     -40+x, -40+y,
40+x, -40+y,     60+x, -120+y,      160+x, -160+y,
120+x, -60+y,    60+x, -40+y,       120+x, 40+y,
120+x, 80+y,     80+x, 120+y,       0+x, 140+y,
-80+x, 120+y,   -120+x, 80+y,       -120+x, 40+y,
-60+x, -40+y,   -120+x, -60+y,      -160+x,-160+y]

'------------
' MAIN LOOP
'------------
while not keydown(KEY_ESCAPE)
    set color black_alpha;cls
    set color white

    '------- Polyimage --------                 
    DrawPolyImageXform(texture, rabbit, x, y, s, s, 0)
   
    '------ Polyline --------
    distance = (distance + move_pixel)%path.GetLength()
    pos = path.GetPoint(distance,false)
    draw ellipse pos[0]+width(primary)/2, pos[1]+height(primary)/2, 4, 4, 1

    '------- Polygon ---------
    set color red
    draw poly rab_bit,0

    redraw
    fwait 30
wend