Positioning a polygon body

function setup()
    supportedOrientations(LANDSCAPE_ANY)
    local h = HEIGHT/15
    local w = WIDTH/10
    shipPoints = {
    vec2(0,0),
    vec2(0,h),
    vec2(w,h),
    vec2(w*1.3,h/2),
    vec2(w,0)}
    ship = physics.body(POLYGON, unpack(shipPoints))
    ship.x = WIDTH/2
    ship.y = HEIGHT/2
end

function draw()
    background(0, 0, 0, 255)
    strokeWidth(5)
    stroke(73, 255, 0, 255)
    local points = ship.points
            for j = 1,#points do
                a = points[j]
                b = points[(j % #points)+1]
                line(a.x, a.y, b.x, b.y)
    end
end

Ok so I guess I’m asking this; how do ship. x and y and vec2 coordinates impact the location of my physics body? Also how would I make the bodies location changeable and use it’s location as a variable. Also if there are errors or dumb things in my code please lmk. Thanks everyone.

@bhob12 - your polygon points are centred on (0,0), but the centre position of your polygon is at (ship.x,ship.y)

So what you need to do is this

pushMatrix() --store current drawing settings before we mess with them
translate(ship.x,ship.y) --move (0,0) to be at the ship position
rotate(ship.angle) --rotate to the ship's current angle
--put your "for" loop in here to draw the points
popMatrix() --restore drawing settings

So you “translate” (move) the point (0,0) to (ship.x,ship.y), then you rotate to be at the same angle as the physics object, then you draw all your points centred on (0,0) [which is now (ship.x,ship.y)], then you reverse the rotation and translation (in case you have more things to draw)

Wonderful thanks.