# Simple physics question

Why doesn’t the box drawn during draw follow the updated position of the polygon? Box.x and box.y show that the polygon is affected by its initial velocity and gravity, but no updates to the drawn position.

``````-- Use this function to perform your initial setup
function setup()
print("Hello World!")
ox= WIDTH/2
oy = HEIGHT/2
box = physics.body(POLYGON, vec2(ox,oy),vec2(ox,oy+20),vec2(ox+20,oy+20),vec2(ox+20,oy) )
box.linearVelocity=vec2(20,0)
box.type = DYNAMIC

end

-- This function gets called once every frame
function draw()
-- This sets a dark background color
background(40, 40, 50)
physics.gravity()
-- This sets the line thickness
strokeWidth(5)

if box.shapeType == POLYGON then
strokeWidth(10)
points = box.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
print(box.x)
print(box.y)
end
``````

I believe it is because the `points` are in the local space of the body (and fixed in that space) not in the world space of the viewer. See `PhysicsDebugDraw:draw()` in the Physics Lab example project, and note the initial `translate` and `rotate` that move the view so that it is aligned with the local space.

Hi @Jdrj, few days ago I had a similar problem. Check the way I solved it following this link

http://twolivesleft.com/Codea/Talk/discussion/comment/11491#Comment_11491

It can give you perhaps a clue.

Saludos, Victor
~O)

``````
function setup()
ox= WIDTH/2
oy = HEIGHT/2
box = physics.body(POLYGON, --<< Relative to centre of mass
vec2(-10, -10),         --<< and set counter-clockwise
vec2(10, -10),
vec2(10, 10),
vec2(-10, 10))
box.x = ox --<< Position of centre of mass
box.y = oy --<< Position of centre of mass
box.linearVelocity = vec2(20, 0)
box.type = DYNAMIC -- The type is DYNAMIC by default
end

function draw()
background(0)
physics.gravity() -- Has no effect, without an argument
strokeWidth(5)    -- Has no effect, as strokeWidth is reset to 10 below
pushMatrix()      --<< Preserve the matrix
translate(box.x, box.y) --<< Move view over the centre of mass
rotate(box.angle)       --<< Rotate view for the body's rotation
if box.shapeType == POLYGON then -- Will always be true
strokeWidth(10)
points = box.points -- These are in the local space of the box,
-- relative to the centre of mass and with no rotation
for j = 1, #points do
a = points[j]
b = points[(j % #points) + 1]
line(a.x, a.y, b.x, b.y)
end
end
popMatrix() -- Restore the matrix
end
``````

Thanks for that. I do appreciate it.

There is an explanation of the Physics Lab example project on the wiki here. I have extended it to cover in more detail the subject of this discussion.