الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

نقطة خلف عنصر(رسم توضيحي)

مغلق
بدأه sam2 في 12 نوفمبر 2006 · 5 رد · 887 مشاهدة · في قسم برمجة الألعاب و الرسوميات العام
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

Axy.gif

مرحبا

بالبداية و من باب التوضيح و ليس التشويش و التشتيت

هذا الرسم ب النسبة لي هو إيجاد موقع نقطة تقع مباشرتا خلف عنصر دار بمقدار زاوية معينة

و سأستعمله في برمجة الكاميرا الخاصة بالألعاب .

المطلوب باختصار هو موقع A على المحاور XY

المعطيات المعلومة

موقع مركز الدائرة على المحور XYو فرضيا و ضعته 0

نصف قطر الدائرة

زاوية الدوران وفرضيا وضعته 45

أريد من خلال هذه المعطيات معرفة موقع A

هناك نقطة تتجول حول محيط الدائرة يمكن معرفة موقعها ولا يمكن اختيار موقعها و رمزتها D

أرجوا ممن يمكنه المساعدة أن يساعدني في حل هذا

شكرا

#2
use 
x = r*cos(theta)
y= r*sin(theta)

BEng , Electronics and communications.

Embedded systems engineer.

Graphics Programmer

عالم الكومبيوتر هو من لديه المعرفة في علوم الكومبيوتر ، الرياضيات ، هندسة الالكترونيات -احمد صالح

#3

شكرا أخ أحمد على المشاركة

ما هي r

وما هي theta

----

المحور C في الرسم سيدور و هو ليس ثابت فكلما دار تتغير موقع A

على سبيل المثال لو دار 90 درجة فإن موقع A سيصبح عند موقع D "الخضرة" بناء على الرسم

و موقع مركز الدائرة هو ليس ثابت بل دائما يتحرك فربما يكون x=12 y=-15.5

تم تعديل هذه المشاركة بواسطة sam2 في 12 نوفمبر 2006 في 03:20

#4

بحثت في الموقع على معنى ما كتبت

r هي نصف القطر

و theta هي الذاوية

صح ؟

سأجرب هذا

طبقت المعادلة

x = 3*cos(90) >>> 1.344
y= 3*sin(90) >>> 2.681

وبناء على الرسم فإن النتائج هذه ستكون خطأ لأنه لو كانت الذاوية 90 سيكون موقع العنصر على x هو -3

وموقعه على y 0

#5

شكرا أخ أحمد كلامك صحيح

ولكن المشكلة كانت في لغة البرمجة

A_x = -R*sin(angle)
A_y = -R*cos(angle)

اقتباس
be careful with the sin and cosine function:

in python you have to convert from degree to radians:

math.cos(angle_in_degree*math.pi/180.0)

also you have to use floats, not integers: 180.0 instead of 180 !!

شكرا أخ أحمد

طبعا الحل في لغة python

angle = math.radians(angle_in_degree)
Ax = -R*math.sin(angle) + Cx
Ay = R*math.cos(angle) + Cy

شكرا

تم تعديل هذه المشاركة بواسطة sam2 في 13 نوفمبر 2006 في 04:05

#6

نعم اخي ، يجب تحويل الزاوية من تقدير الستيني الي تقدير دائري ، ايضاً في السي ، سي ++ نفس الكلام .

BEng , Electronics and communications.

Embedded systems engineer.

Graphics Programmer

عالم الكومبيوتر هو من لديه المعرفة في علوم الكومبيوتر ، الرياضيات ، هندسة الالكترونيات -احمد صالح

هذا الموضوع مغلق.

مواضيع مشابهة