Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- stock FinishPoints(Float:pX,Float:pY,Float:lX,Float:lY,Float:Distance,&Float:RedX,&Float:RedY,&Float:BlueX,&Float:BlueY)
- {
- new Float:DeltaX;
- new Float:DeltaY;
- new Float:AdderX;
- new Float:AdderY;
- new Float:Length;
- DeltaX = pX - lX;
- DeltaY = pY - lY;
- Length = floatsqroot(((DeltaX * DeltaX) + (DeltaY * DeltaY))) + 0.0000000001;
- AdderX = (DeltaX / Length);
- AdderY = (DeltaY / Length);
- new Float:Angle01 = atan2(lX - pX, lY - pY);
- new Float:SinMin = floatsin(-Angle01,degrees);
- new Float:CosMin = floatcos(-Angle01,degrees);
- RedX = lX + (CosMin * Distance) - AdderX * Distance;//red
- RedY = lY + (SinMin * Distance) - AdderY * Distance;//red
- BlueX = lX - (CosMin * Distance) - AdderX * Distance;//blue
- BlueY = lY - (SinMin * Distance) - AdderY * Distance;//blue
- return 1;
- }
- stock StartPoints(Float:fX,Float:fY,Float:sX,Float:sY,Float:Distance,&Float:RedX,&Float:RedY,&Float:BlueX,&Float:BlueY)
- {
- new Float:DeltaX;
- new Float:DeltaY;
- new Float:AdderX;
- new Float:AdderY;
- new Float:Length;
- DeltaX = sX - fX;
- DeltaY = sY - fY;
- Length = floatsqroot(((DeltaX * DeltaX) + (DeltaY * DeltaY))) + 0.0000000001;
- AdderX = (DeltaX / Length);
- AdderY = (DeltaY / Length);
- new Float:Angle01 = atan2(fX - sX, fY - sY);
- new Float:SinMin = floatsin(-Angle01,degrees);
- new Float:CosMin = floatcos(-Angle01,degrees);
- RedX = sX + (CosMin * Distance) + AdderX * Distance;//red
- RedY = sY + (SinMin * Distance) + AdderY * Distance;//red
- BlueX = sX - (CosMin * Distance) + AdderX * Distance;//blue
- BlueY = sY - (SinMin * Distance) + AdderY * Distance;//blue
- return 1;
- }
- stock CalculatePositions(Float:startX,Float:startY, Float:middleX,Float:middleY, Float:endX,Float:endY, Float:Distance,&Float:RedX,&Float:RedY,&Float:BlueX,&Float:BlueY)
- {
- new Float:DeltaX;
- new Float:DeltaY;
- new Float:AdderX;
- new Float:AdderY;
- new Float:Length;
- new Float:CP[10][2];
- CP[0][0] = middleX;
- CP[0][1] = middleY;
- CP[1][0] = startX;
- CP[1][1] = startY;
- CP[2][0] = endX;
- CP[2][1] = endY;
- DeltaX = CP[1][0] - CP[0][0];
- DeltaY = CP[1][1] - CP[0][1];
- Length = floatsqroot(((DeltaX * DeltaX) + (DeltaY * DeltaY))) + 0.0000000001;
- AdderX = (DeltaX / Length);
- AdderY = (DeltaY / Length);
- CP[3][0] = (CP[0][0] + (AdderX * Distance));
- CP[3][1] = (CP[0][1] + (AdderY * Distance));
- DeltaX = CP[2][0] - CP[0][0];
- DeltaY = CP[2][1] - CP[0][1];
- Length = floatsqroot(((DeltaX * DeltaX) + (DeltaY * DeltaY))) + 0.0000000001;
- AdderX = (DeltaX / Length);
- AdderY = (DeltaY / Length);
- CP[4][0] = (CP[0][0] + (AdderX * Distance));
- CP[4][1] = (CP[0][1] + (AdderY * Distance));
- DeltaX = CP[3][0] - CP[4][0];
- DeltaY = CP[3][1] - CP[4][1];
- Length = floatsqroot(((DeltaX * DeltaX) + (DeltaY * DeltaY))) + 0.0000000001;
- AdderX = (DeltaX / Length);
- AdderY = (DeltaY / Length);
- CP[8][0] = (CP[4][0] + (AdderX * Length / 2.0));
- CP[8][1] = (CP[4][1] + (AdderY * Length / 2.0));
- DeltaX = CP[8][0] - CP[0][0];
- DeltaY = CP[8][1] - CP[0][1];
- Length = floatsqroot(((DeltaX * DeltaX) + (DeltaY * DeltaY))) + 0.0000000001;
- AdderX = (DeltaX / Length);
- AdderY = (DeltaY / Length);
- CP[7][0] = (CP[0][0] - (AdderX * Distance));
- CP[7][1] = (CP[0][1] - (AdderY * Distance));
- CP[9][0] = (CP[0][0] + (AdderX * Distance));
- CP[9][1] = (CP[0][1] + (AdderY * Distance));
- if((endX - startX) * (CP[7][1] - startY) - (endY - startY) * (CP[7][0] - startX) > 0)
- {
- CP[7][0] = (CP[0][0] + (AdderX * Distance));
- CP[7][1] = (CP[0][1] + (AdderY * Distance));
- CP[9][0] = (CP[0][0] - (AdderX * Distance));
- CP[9][1] = (CP[0][1] - (AdderY * Distance));
- }
- RedX = CP[7][0];//red
- RedY = CP[7][1];//red
- BlueX = CP[9][0];//blue
- BlueY = CP[9][1];//blue
- return 1;
- }
Advertisement
Add Comment
Please, Sign In to add comment