Guest User

Untitled

a guest
Dec 5th, 2012
57
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.93 KB | None | 0 0
  1.  
  2. stock FinishPoints(Float:pX,Float:pY,Float:lX,Float:lY,Float:Distance,&Float:RedX,&Float:RedY,&Float:BlueX,&Float:BlueY)
  3. {
  4. new Float:DeltaX;
  5. new Float:DeltaY;
  6. new Float:AdderX;
  7. new Float:AdderY;
  8. new Float:Length;
  9. DeltaX = pX - lX;
  10. DeltaY = pY - lY;
  11. Length = floatsqroot(((DeltaX * DeltaX) + (DeltaY * DeltaY))) + 0.0000000001;
  12. AdderX = (DeltaX / Length);
  13. AdderY = (DeltaY / Length);
  14. new Float:Angle01 = atan2(lX - pX, lY - pY);
  15. new Float:SinMin = floatsin(-Angle01,degrees);
  16. new Float:CosMin = floatcos(-Angle01,degrees);
  17.  
  18. RedX = lX + (CosMin * Distance) - AdderX * Distance;//red
  19. RedY = lY + (SinMin * Distance) - AdderY * Distance;//red
  20. BlueX = lX - (CosMin * Distance) - AdderX * Distance;//blue
  21. BlueY = lY - (SinMin * Distance) - AdderY * Distance;//blue
  22. return 1;
  23. }
  24.  
  25. stock StartPoints(Float:fX,Float:fY,Float:sX,Float:sY,Float:Distance,&Float:RedX,&Float:RedY,&Float:BlueX,&Float:BlueY)
  26. {
  27. new Float:DeltaX;
  28. new Float:DeltaY;
  29. new Float:AdderX;
  30. new Float:AdderY;
  31. new Float:Length;
  32. DeltaX = sX - fX;
  33. DeltaY = sY - fY;
  34. Length = floatsqroot(((DeltaX * DeltaX) + (DeltaY * DeltaY))) + 0.0000000001;
  35. AdderX = (DeltaX / Length);
  36. AdderY = (DeltaY / Length);
  37. new Float:Angle01 = atan2(fX - sX, fY - sY);
  38. new Float:SinMin = floatsin(-Angle01,degrees);
  39. new Float:CosMin = floatcos(-Angle01,degrees);
  40. RedX = sX + (CosMin * Distance) + AdderX * Distance;//red
  41. RedY = sY + (SinMin * Distance) + AdderY * Distance;//red
  42. BlueX = sX - (CosMin * Distance) + AdderX * Distance;//blue
  43. BlueY = sY - (SinMin * Distance) + AdderY * Distance;//blue
  44. return 1;
  45. }
  46.  
  47. stock CalculatePositions(Float:startX,Float:startY, Float:middleX,Float:middleY, Float:endX,Float:endY, Float:Distance,&Float:RedX,&Float:RedY,&Float:BlueX,&Float:BlueY)
  48. {
  49. new Float:DeltaX;
  50. new Float:DeltaY;
  51. new Float:AdderX;
  52. new Float:AdderY;
  53. new Float:Length;
  54. new Float:CP[10][2];
  55. CP[0][0] = middleX;
  56. CP[0][1] = middleY;
  57. CP[1][0] = startX;
  58. CP[1][1] = startY;
  59. CP[2][0] = endX;
  60. CP[2][1] = endY;
  61.  
  62. DeltaX = CP[1][0] - CP[0][0];
  63. DeltaY = CP[1][1] - CP[0][1];
  64. Length = floatsqroot(((DeltaX * DeltaX) + (DeltaY * DeltaY))) + 0.0000000001;
  65. AdderX = (DeltaX / Length);
  66. AdderY = (DeltaY / Length);
  67. CP[3][0] = (CP[0][0] + (AdderX * Distance));
  68. CP[3][1] = (CP[0][1] + (AdderY * Distance));
  69.  
  70. DeltaX = CP[2][0] - CP[0][0];
  71. DeltaY = CP[2][1] - CP[0][1];
  72. Length = floatsqroot(((DeltaX * DeltaX) + (DeltaY * DeltaY))) + 0.0000000001;
  73. AdderX = (DeltaX / Length);
  74. AdderY = (DeltaY / Length);
  75. CP[4][0] = (CP[0][0] + (AdderX * Distance));
  76. CP[4][1] = (CP[0][1] + (AdderY * Distance));
  77.  
  78. DeltaX = CP[3][0] - CP[4][0];
  79. DeltaY = CP[3][1] - CP[4][1];
  80. Length = floatsqroot(((DeltaX * DeltaX) + (DeltaY * DeltaY))) + 0.0000000001;
  81. AdderX = (DeltaX / Length);
  82. AdderY = (DeltaY / Length);
  83. CP[8][0] = (CP[4][0] + (AdderX * Length / 2.0));
  84. CP[8][1] = (CP[4][1] + (AdderY * Length / 2.0));
  85.  
  86. DeltaX = CP[8][0] - CP[0][0];
  87. DeltaY = CP[8][1] - CP[0][1];
  88. Length = floatsqroot(((DeltaX * DeltaX) + (DeltaY * DeltaY))) + 0.0000000001;
  89. AdderX = (DeltaX / Length);
  90. AdderY = (DeltaY / Length);
  91. CP[7][0] = (CP[0][0] - (AdderX * Distance));
  92. CP[7][1] = (CP[0][1] - (AdderY * Distance));
  93. CP[9][0] = (CP[0][0] + (AdderX * Distance));
  94. CP[9][1] = (CP[0][1] + (AdderY * Distance));
  95.  
  96. if((endX - startX) * (CP[7][1] - startY) - (endY - startY) * (CP[7][0] - startX) > 0)
  97. {
  98. CP[7][0] = (CP[0][0] + (AdderX * Distance));
  99. CP[7][1] = (CP[0][1] + (AdderY * Distance));
  100. CP[9][0] = (CP[0][0] - (AdderX * Distance));
  101. CP[9][1] = (CP[0][1] - (AdderY * Distance));
  102. }
  103.  
  104. RedX = CP[7][0];//red
  105. RedY = CP[7][1];//red
  106. BlueX = CP[9][0];//blue
  107. BlueY = CP[9][1];//blue
  108. return 1;
  109. }
Advertisement
Add Comment
Please, Sign In to add comment