19.10.2016, 20:54
Hi,
I have billiard cue and billiard ball, how to calculate billiard cue position, to billiard ball?
I have billiard cue and billiard ball, how to calculate billiard cue position, to billiard ball?
stock GetDistance( Float:x1, Float:y1, Float:z1, Float:x2, Float:y2, Float:z2 ) { return floatround( floatsqroot( ( ( x1 - x2 ) * ( x1 - x2 ) ) + ( ( y1 - y2 ) * ( y1 - y2 ) ) + ( ( z1 - z2 ) * ( z1 - z2 ) ) ) ) ); }
GetXYInFrontOfObject(objectid, &Float:x, &Float:y, Float:distance) //function by TakeiT { //This function is modified from GetXYInFrontOfPlayer new Float:a, Float:rx, Float:ry; GetObjectPos(objectid, x, y, a); GeObjectRot(objectid,rx, ry, a); x += (distance * floatsin(-a, degrees)); y += (distance * floatcos(-a, degrees)); }
new Float:X, Float:Y, Float:Z; GetObjectPos(ballobject, X, Y, Z); //this is for the Z angle, the X and Y are about to be re written GetXYInFrontOfObject(cueobject, X, Y, 1.0); //change 1.0 to the you want the ball to go. MoveObject(ballobject.....);
GetXYInFrontOfObject(objectid, &Float:x, &Float:y, Float:distance) //function by TakeiT { //This function is modified from GetXYInFrontOfPlayer new Float:a, Float:rx, Float:ry; GetObjectPos(objectid, x, y, a); GeObjectRot(objectid,rx, ry, a+3); x += (distance * floatsin(-a, degrees)); y += (distance * floatcos(-a, degrees)); }
stock GetDistance( Float:x1, Float:y1, Float:z1, Float:x2, Float:y2, Float:z2 )
{
return floatround( floatsqroot( ( ( x1 - x2 ) * ( x1 - x2 ) ) + ( ( y1 - y2 ) * ( y1 - y2 ) ) + ( ( z1 - z2 ) * ( z1 - z2 ) ) ) ) );
}
Float:GetDistanceBetween2Points(Float:x1, Float:y1, Float:z1, Float:x2, Float:y2, Float:z2)
{
return VectorSize(x1-x2, y1-y2, z1-z2);
}
GetXYInFrontOfObject(objectid, &Float:x, &Float:y, Float:distance) //function by TakeiT { //This function is modified from GetXYInFrontOfPlayer new Float:a, Float:rx, Float:ry; GetObjectPos(objectid, x, y, a); GeObjectRot(objectid,rx, ry, a+3); x += (distance * floatsin(-a, degrees)); y += (distance * floatcos(-a, degrees)); }