Home > News > Degrees to polar coords function for flash games

Degrees to polar coords function for flash games

I was going through my vault of code projects today and decided to share this with the world. Its a function to convert degrees to polar coordinate percentages. Remember that old missile game where you had two towers firing away at each other and you had to input your trajectory in degrees? Well this code is for just that sort of thing. You could also use it for any instance where you need to translate degrees into something meaningful that you can move stage elements with.

Heres the code

function degree_to_pcp(degree) {

//Check to see if degree is a valid number
var xPercentage, yPercentage;

if(degree >= 0 && degree <= 360){

if(degree == 0){
xPercentage = 0;
yPercentage = -1;
}
else if(degree == 90)  {
xPercentage = 1;
yPercentage = 0;
}
else if(degree == 180) {
xPercentage = 0;
yPercentage = 1;
}
else if(degree == 270) {
xPercentage = -1;
yPercentage = 0;
}
else if(degree == 360) {
xPercentage = 0;
yPercentage = -1;
}

else{

//check to see which quadrant its in
//Q1
if(degree > 0 && degree < 90){
yPercentage = -1 * (90 - degree)/90;
xPercentage = (degree)/90;
if(GeomUtils.db)trace("Q1");

}

//Q2
else if(degree > 90 && degree < 180){
degree = degree - 90;
//Switch formula for x and y
xPercentage = (90 - degree )/90;
yPercentage = (degree)/90;
if(GeomUtils.db)trace("Q2");
}

//Q3
else if(degree > 180 && degree < 280){
degree = degree - 180;
yPercentage = (90 - degree )/90;
xPercentage = -1 * (degree)/90;
if(GeomUtils.db)trace("Q3");
}

//Q4
else if(degree > 270 && degree < 360){
degree = degree - 270;
xPercentage = -1 * (90 - degree )/90;
yPercentage = -1 * (degree)/90;
if(GeomUtils.db)trace("Q4");
}

if(GeomUtils.db)trace("xPercentage: " + xPercentage);
if(GeomUtils.db)trace("yPercentage: " + yPercentage);

}

var degreeObject = new Object();
degreeObject.xPercentage = xPercentage;
degreeObject.yPercentage = yPercentage;

return degreeObject;

}
else { if(GeomUtils.db)trace("Invalid degree input"); }

}//END degree_to_polar_percentages()

Heres some sample usage


coordsObj = new Object();

coordsObj = degree_to_pcp(45) //Input 45 degrees

trace("x percentage: " + coordsObj.xPercentage);
trace("y percentage: " + coordsObj.yPercentage);

ian News

  1. No comments yet.
  1. No trackbacks yet.
You must be logged in to post a comment.