বেসিক সি/স্থানাঙ্ক

উইকিবই থেকে

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