شما اینجا هستید

۱-۱ بردار ها، شما مرا کامل کنید

پیغام خطا

Deprecated function: The each() function is deprecated. This message will be suppressed on further calls در book_prev() (خط 775 در /home/molavy/public_html/modules/book/book.module).

قبل از دقت بیشتر در جزییات بردار ها، اجازه دهید نگاهی به مثال های ساده در Processing داشته باشیم. این مثال ها نشان می دهد چطور به بردار ها در آغاز کار نگاه کنیم.اگر شما توضیحات مقدماتی در کتاب های مربوط به processing را خوانده باشید یا کلاسی در این رابطه رفته باشید، امیداورم این کار را از قبل کرده باشید تا به شما در خواندن این کتاب کند)، شما تقریبا رسم یک توپ متحرک روی صفحه را یاد گرفته اید.

 

 

 

اگر نسخه پرینتی یا PDF این صفحه را می بینید شما یک تصویر ثابت خواهید دید.حرکت یک عنصر کلیدی در بحث ماست، برای همین در این نسخه ها توپ شما اثر حرکت را به صورت توپ های دنباله دار کم رنگ تر خواهید دید. برای ترسیم دنباله ها کد زیر قابل استفاده است

مثال ۱-۱ -- توپ متحرک بدون بردار

 float x = 100;
float y = 100;
float xspeed = 1;
float yspeed = 3.3;
 
Remember how Processing works? setup() is executed once when the sketch starts and draw() loops forever and ever (until you quit).
void setup() {
  size(640,360);
  background(255);
}
 
void draw() {
  background(255);
 
Move the ball according to its speed.
  x = x + xspeed;
  y = y + yspeed;
 
Check for bouncing.
  if ((x > width) || (x < 0)) {
    xspeed = xspeed * -1;
  }
  if ((y > height) || (y < 0)) {
    yspeed = yspeed * -1;
  }
 
  stroke(0);
  fill(175);
Display the ball at the location (x,y).
  ellipse(x,y,16,16);
} 

 

در مثال بالا، ما یک دنیای ساده داریم-- صفحه خالی با یک شی دایره ای(یک توپ) که در اطراف حرکت می کند. این توپ چند ویژگی دارد،که با متغییر ها در کد تعریف شده است.



موقعیت

و y

سرعت

xspeed و yspeed

در طراحی کمی پیچیده تر، ما می توانیم متغییر های بیشتری را متصور شویم

شتاب

xacceleration و yacceleration

موقعیت هدف

xtarget و ytarget

باد

xwind و ywind

اصطکاک

xfriction و yfriction

واضح است که برای هر مفهوم در این دنیا( باید ، موقعیت، شتاب و غیره) در فضای دو بعدی شما نیاز به دو متغیر دارید.) در فضای سه بعدی نیاز به سه متغیر xyz, xspeed, yspeed, zspeed و به این شکل برای همه لازم است.

جالب نیست اگر بتوانیم کدمان را ساده کنیم و از متغیر های کمتری استفاده کنیم؟
به جای: 

float x;
float y;
float xspeed;
float yspeed; 

می توانیم به راحتی از :

Vector location;
Vector speed;

استفاده کنیم. این قسمت از بردار در این قسمت ها به ما اجازه کار خاصی نمی دهد.

فقط اضافه کردن بردار ها به صورت جادویی فیزیک را بر روی صفحه شبیه سازی نمی کند. آنها توابع برداری و عملیات های ریاضی عمومی مربوط که بارها و بارها و بارها در هنگام برنامه نویسی حرکت به آنها نیاز داریم را فراهم می کنند.

برای معرفی بردار ها، ما از فضای دو بعدی شروع می کنیم(حد اقل برای چند فصل اول). تمام این مثال ها می توانند به سادگی در به فضای سه بعدی گسترش پیدا کنند(کلاس –Pvector – به ما اجازه استفاده در فضای سه بعدی را می دهد). اما ساده تر است تا در فضای دو بعدی شروع کنیم.

دیدگاه جدیدی بگذارید