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

۶-۱ نرمال کردن بردار

پیغام خطا

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).

 

محاسبه اندازه بردار تنها شروع کار است. تابع طول در را بر روی بسیاری دیگر از امکانات باز می کند، که اولین آن نرمال کردن است. نرمال سازی به فرایند استاندارد و معیار کردن یک چیز می پردازد. بیایید برای حالا فکر کنیم که در بردار ها نرمال کردن کردن اجازه می دهد که به برداری استاندارد برسیم که طول آن مقدار یک است. برای بر این اساس،برای نرمال کردن یک بردار با هر طولی جهت آن را دست نمی زنیم، تنها اندازه آن را یک می کنیم، و آن را بردار واحد(یکه یا میزان می نامیم).

به دلیل اینکه این بردار تنها جهت بردار ها را نشان می دهد و طول آن ها کاری ندارد، بهتر است که بردار واحد به راحتی در دسترس باشد. استفاده از این مفهوم را به در فصل دو نیرو ها خواهیم دید.

 برای هر بردار u⃗ یک بردار میزان یا واحد (به صورت û نوشته می شود) به شکل زیر محاسبه می شود:

 û=u⃗ /∥u⃗∥

به بیان دیگر، برای نرمال کردن یک بردار، تنهاکافی است مقدار هر جزء را بر اندازه آن تقسیم کنیم.این موضوع کاملا مشهود است. می گوییم یک اندازه یک بردار ۵ است. خوب، ۵ تقسیم بر ۵ برابر ۱. بیاید به مثلث قائم الزاویه خودمان برگردیم، وقتی ما نیاز به تغییر اندازه ی وتر با تقسیم آن بر ۵ داریم، اندازه اضلاع مثلث نیز به پنج تقسیم می شوند.

تصویر ۱-۱۳

در کلاس PVector، بنابراین ما تابع نرمال سازی را به شکل زیر می نویسیم:

 void normalize() {
  float m = mag();
  div(m);
}

البته، یک مسئله کوچک وجود دارد. چه اتفاقی می افتد اگر طول بردار صفر باشد؟ ما نمی توانیم تقسیم بر صفر انجام دهیم! یک بررسی خطای کوچک این مشکل را رفع می کند:

 void normalize() {
 float m = mag();
 if (m != 0) {
   div(m);
 }
} 

مثال ۱-۶ نرمال کردن یک بردار

 void draw() {
  background(255);
 
  PVector mouse = new PVector(mouseX,mouseY);
  PVector center = new PVector(width/2,height/2);
  mouse.sub(center);
 
  mouse.normalize();
  mouse.mult(50);
  translate(width/2,height/2);
  line(0,0,mouse.x,mouse.y);
 
}
 

دیدگاه‌ها

با تشکر از توضیحات مختصر اما کامل . موفق باشید.

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