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

كيف يمكننى رسم الزوايا بLINE فى لغة الC

مغلق
بدأه neo في 25 مارس 2003 · 4 رد · 871 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

كيف يمكننى رسم الزوايا بـLINE فى لغة الـC

Nothing to mention except that I am Muslim

Using your brain is not bad as you think

My Blog

logo.jpg

#2

يوفر هذا عنك جدوال الآسكي..

ففيه رمز للزوايا الاربعة و الخطوط.

يمكنك البحث عنه :)

طلال.

#3

ما أقصدة هو رسم زاويا فى الـGRAPHIC MODE بالدالة LINE

فأذا أرت رسم زاوبا 50 أو 35 فكيف ذلك

Nothing to mention except that I am Muslim

Using your brain is not bad as you think

My Blog

logo.jpg

#4

أخي الطريقة اليدوية هي:

-->خذ من المستخدم زاوية.

-->خذ من المستخدم طول الخط.

-------------------------------------

-->حوّل الزاوية من درجة الى راديان..

--> جدّ دلتا X ..

-->جد دلتا Y .

أرسم خط يبدأ من أي نقطة وينتهي عند إحداثيات هذه النقطة مضاف اليها دلتا X ,دلتا Y :

مثلا يبدأ الخط من :100,100 وينتهي عند 100+Dx + 100 , Dy.

---------------------

طبعا تحسب دلتا X ودلتا Y حسب sin & cos...

#5

هذا كود قمت بعمله على عجل, أعذرني اذا كان هناك خطأ...

ركّز على الدالة DrawLine.

#include<graphics.h>

#include<stdio.h>

#include<conio.h>

#include<math.h>

int Initialgrph();

void DrawLine(float,float);

main()

{

float angle=0,length=0;



if(Initialgrph()==1) //if there is error In graphic mode!

{

   printf("Press any key to halt:");

   getch();

   return 1;

}

printf("Enter angle :n");

scanf("%f",&angle);

printf("Enter line length (in pixels) :n");

scanf("%f",&length);



DrawLine(angle,length);





return 0;

}



/////////////////

int Initialgrph()

{

int gdriver = DETECT, gmode, errorcode;





initgraph(&gdriver, &gmode, "c:tcbgi"); //in the "" you may fill the path of the Bgi library



errorcode = graphresult();



if (errorcode != grOk)

{

   printf("Graphics error: %sn", grapherrormsg(errorcode));

   return 1;



}

return 0;

}





void DrawLine(float angle,float length)

{

int Dx,Dy,OrgX,OrgY;



double ang_in_rd;

ang_in_rd=(double)angle*M_PI/180;  //تحويل الزاوية من درجة الى راديان



Dy=sin(ang_in_rd)*length; // y حسب الزاوية نجد دلتا 

Dx=cos(ang_in_rd)*length;// × حسب الزاوية نجد دلتا 

OrgX=getmaxx()/2;//إخترت نقطة انطلاق الخط من مركز الشاشة

OrgY=getmaxy()/2;// أنظر الملاحظة  السابقة



moveto(OrgX,OrgY);// التحرّك الى مركز الشاشة

lineto(OrgX+100,OrgY);//رسم خط إفقي _________.

moveto(OrgX,OrgY); // الرجوع الى مركز الشاشة

lineto(OrgX+Dx,OrgY+Dy);// رسم الخط المطلوب حسب الزاوية والطول 

//المطلوب



getch();







}

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

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