DegAt(W, H) সম্পাদনা

ফাংশনটি ভেক্টরের দিক নির্দেশ করে [W, H]। atan2 ফাংশনের উপর ভিত্তি করে, কিন্তু SDL জ্যামিতির সাথে সামঞ্জস্যপূর্ণ। ফলাফল -180 থেকে 180 ডিগ্রীতে, 0 ডিগ্রী উত্তর দিক নির্দেশ করে, যেমন ভেক্টর [0, -1] এর 0 ডিগ্রী আছে। সংজ্ঞা: (atan2 (W, - (H)) * 57.29578)

Distance(x, y, x2, y2) সম্পাদনা

বিন্দু থেকে বিন্দুর দূরত্ব (x, y) (x2, y2)

PointInCircle(Px, Py, X, Y, R) সম্পাদনা

বিন্দু (Px, Py) বৃত্তের ভিতরে থাকলে 1 প্রদান করে (X, Y, R), না থাকলে 0।

PointInBox(px, py, x1, y1, x2, y2) সম্পাদনা

বিন্দু (px, py) আয়তক্ষেত্রের ভিতরে থাকলে 1 প্রদান করে (x1, y1, x2, y2), না থাকলে 0। শর্ত: x2> = x1, y2> = y1।

PointInRect(px, py, rx, ry, w, h) সম্পাদনা

উপরের মত, কিন্তু 2য় কোণার পরিবর্তে আমরা প্রস্থ এবং উচ্চতা দিচ্ছি। শর্ত: w> = 0, h> = 0। এটি SDL_PointInRect (& p, & r) ফাংশনের সাথে মিলে যায়, যেখানে p হল SDL_Point টাইপের একটি কাঠামো যার ক্ষেত্রগুলি int x এবং int y, p.x এবং p.y হল বিন্দুর স্থানাঙ্ক। একইভাবে, r হল SDL_Rect ধরনের, r.x এবং r.y হল কোণার স্থানাঙ্ক, r.w এবং r.h হল আয়তক্ষেত্রের প্রস্থ এবং উচ্চতা।

CircleCollide(x, y, r, x2, y2, r2) সম্পাদনা

বৃত্ত (x, y, r) এবং (x2, y2, r2) সাধারণ বিন্দু থাকলে 1 প্রদান করে, না থাকলে 0।

RectCollide(A, B) সম্পাদনা

A এবং B এর কমন পয়েন্ট থাকলে 1, না থাকলে 0 প্রদান করে। A এবং B হল SDL_Rect প্রকারের কাঠামো। SDL_HasIntersection (& A, & B) ফাংশনের সাথে মিলে যায়

SRC(X, Y, W, H) সম্পাদনা

DST(X, Y, W, H) সম্পাদনা

SDL_Rect প্রকারের SRC এবং DST পরিবর্তনশীল ক্ষেত্রগুলির দ্রুত সেটিং করার জন্য কমান্ড। এগুলি হল বেসিকSDL.h
-এ ঘোষিত সহায়ক ভেরিয়েবল
উদাহরণ:

include "BasicSDL.h"
SDL_Point punkt={100,350};
MAIN
  SDLOpen(0)
  Color(-1)
  Draw(0,0,200,199)
  GPrintAt(300,0,"Nachylenie ") GPrint(Str$(DegAt(200,199)))
  GPrintAt(300,32,"Długość ") GPr(Distance(0,0,200,199))
  Rect(0,200,100,200) Rect(100,200,100,100)
  SRC(0,200,100,200) DST(100,200,100,100)
  If (RectCollide(SRC,DST))
    GPrintAt(300,232,"kolizja")
  Else
    GPrintAt(300,232,"brak kolizji")
  EndIf
  Color(65535)
  Plot(punkt.x,punkt.y)
  If (PointInBox(punkt.x,punkt.y,0,200,99,399))
    GPrintAt(110,350,"punkt w prostokącie")
  Else
    GPrintAt(110,350,"punkt poza prostokątem")
  EndIf
  ShowPage
  WaitInKey
  SDLQuit
ENDMAIN