javascript - Rotate Polygon with Coordinates -
i trying rotate polygon (3 edges) (i have coordinates of edges). i'm using cos , sin new coordinates of every single point, doesn't work have no thought why.
http://jsfiddle.net/sh3rlock/gqk23/
(m middle-point of polygon , kr radius of circle)
newx = x + ((x - m[0]) * c - (y - m[1]) * s) * kr;
newy = y + ((y - m[1]) * c + (x - m[0]) * s) * kr;
function drawplayer(x, y, r, tcolor) { if (typeof c === "undefined") color = 'rgba(0,0,200,1)'; //canvas.width = canvas.width; var radians = r * (math.pi / 180); var m = getmiddleofpg([ [x, y + 5], [x, y - 5], [x + 15, y] ]); // mitte des polygons var = [x, y + 5]; var b = [x, y - 5]; var c = [x + 15, y]; drawpolygonfromarray([a, b, c], ctx, 'rgba(0,200,0,1)'); var speed = 1; var right = math.cos(radians) * 1; var = -(math.sin(radians) * 1); var x2 = x; var y2 = y; var c = math.cos(radians); var s = math.sin(radians); x = x2; y = y2 + 5; var kr = math.sqrt((x - m[0]) * (x - m[0]) + (y - m[1]) * (y - m[1])); var ax = x + ((x - m[0]) * c - (y - m[1]) * s) * kr; var ay = y + ((y - m[1]) * c + (x - m[0]) * s) * kr; x = x2; y = y2 - 5; kr = math.sqrt((x - m[0]) * (x - m[0]) + (y - m[1]) * (y - m[1])); var bx = x + ((x - m[0]) * c - (y - m[1]) * s) * kr; var = y + ((y - m[1]) * c + (x - m[0]) * s) * kr; x = x2 + 15; y = y2; kr = math.sqrt((x - m[0]) * (x - m[0]) + (y - m[1]) * (y - m[1])); var cx = x + ((x - m[0]) * c - (y - m[1]) * s) * kr; var cy = y + ((y - m[1]) * c + (x - m[0]) * s) * kr; x = x2; y = y2; var = [ax, ay]; var b = [bx, by]; var c = [cx, cy]; drawpolygonfromarray([a, b, c], ctx, tcolor); drawmiddleofpg([a, b, c], 'rgba(255,0,0,1)'); //drawmiddleofpg([[x,y],[x,y-5],[x+15,y]], 'rgba(0,255,0,1)'); //alert(right + " " + up); cr += 20; if (cr > 255) { cb += 20; cr = 0; } if (cb > 255) { cg += 20; cb = 0; cr = 0; } t = settimeout(function () { drawplayer(x, y, r + 1, 'rgba(' + cr + ',' + cb + ',' + cg + ',1)') }, 20); return;
javascript rotation polygon
No comments:
Post a Comment