السلام عليكم اريد مساعدة في كتابة كود بالc++ وهو كود يقوم بطباعة اشكال هندسية او طباعة رسوم
وشكرا
السلام عليكم اريد مساعدة في كتابة كود بالc++ وهو كود يقوم بطباعة اشكال هندسية او طباعة رسوم
وشكرا
تجد هذا المثال في كتاب programming with c++ ....
-------
يجب أن تنتبه الى العنوان .... عنوان المشاركة يجب أن يدل على فحواها...
----
هناك دوال كثيرة لرسم أشكال هندسية على الشاشة, في وضع الجرافيك..
إذا كنت تستخدم تربو سي++ , يمكنك البحث داخل دوال الملف graphics.h لتجد كل الدوال مع شرح ومثال لكل دالة...
هذه قائمة باسماء الدوال المستخدمة في وضع الجرافيك :
arc bar bar3d circle cleardevice clearviewport closegraph detectgraph drawpoly ellipse fillellipse fillpoly floodfill getarccoords getaspectratio getbkcolor getcolor getdefaultpalette getdrivername getfillpattern getfillsettings getgraphmode getimage getlinesettings getmaxcolor getmaxmode getmaxx getmaxy getmodename getmoderange getpalette getpalettesize getpixel gettextsettings getviewsettings getx gety graphdefaults grapherrormsg _graphfreemem _graphgetmem graphresult imagesize initgraph installuserdriver installuserfont line linerel lineto moverel moveto outtext outtextxy pieslice putimage putpixel rectangle registerbgidriver registerfarbgidriver registerbgifont registerfarbgifont restorecrtmode sector setactivepage setallpalette setaspectratio setbkcolor setcolor setfillpattern setfillstyle setgraphbufsize setgraphmode setlinestyle setpalette setrgbpalette settextjustify settextstyle setusercharsize setviewport setvisualpage setwritemode textheight textwidth
وهذا مثال لرسم مربع:
#include <graphics.h>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>
int main(void)
{
/* request auto detection */
int gdriver = DETECT, gmode, errorcode;
int left, top, right, bottom;
/* initialize graphics and local variables */
initgraph(&gdriver, &gmode, "c:tcbgi"); // You may chang this path
/* read result of initialization */
errorcode = graphresult();
if (errorcode != grOk) /* an error occurred */
{
printf("Graphics error: %sn", grapherrormsg(errorcode));
printf("Press any key to halt:");
getch();
exit(1); /* terminate with an error code */
}
left = getmaxx() / 2 - 50;
top = getmaxy() / 2 - 50;
right = getmaxx() / 2 + 50;
bottom = getmaxy() / 2 + 50;
/* draw a rectangle */
rectangle(left,top,right,bottom);
/* clean up */
getch();
closegraph();
return 0;
}للحصول على مساعدة في التربو سي فقط أكتب الكلمة المراد الاستفهام عنها ثم (والمؤشر في منتصف الكلمة) اضغط alt+F1
شكرا اخ اسماعيل علي مساعدتي
الله يكرمك
المهندس إسماعيل ....طيب الرسم بالvc++ كيف يكون ....:(
;)
الرسم في الفيجيوال سي++ شبيه جدا بالرسم خلال الدوس, كل ما عليك هو الحصول على ال device context للنافذة ثم تستعمل دوال شبيهة بتلك الدوال لرسم الخطوط والمربعات...
====
مثلا:
قم بإنشاء برنامج جديد
New-->MFC AppWizard(exe)
-->إختر اسم للمشروع ثم Enter ثم حدد single document واضغط Finish
ثم OK
يجب أن تظهر على الجهة اليسرى قائمة بالملفات الموجودة في المشروع.. يمكنك استعراض الفئات (classes) التي في المشروع بإختيار اللسان ClassView ... الان سترى الفئات التي تكون المشروع إضغط + التي بجوار فئة العرض (فئة العرض تنتهي دائمة بكلمة View وتبدأ ب C يتبعها اسم مشروعك أي هكذت CYourProjectNameView حيث YourProjectName هو اسم مشروعك) الان في دالة بإسم OnDraw أدخل اليها واكتب داخلها السطر التالي لرسم خط
pDC->LineTo(100,100);
حيث pDC هو مؤشر لل device context ...
هناك دوال كثيرة للرسم وهي الـ Member functions للكلاس DC ..
الموضوع سهل للغاية...
بشكل عام للرسم يجب أن تكون دالة الرسم في فئة العرض,غالبا, وهناك تحصل على الـ device context بسهولة (في الدالة OnDraw كان يصلنا جاهزا ولا نحتاج عمل للحصول عليه) للحصول على device context أكتب التالي داخل فئة العرض:
CClientDC dc(this)
ولرسم خط
;(dc.LineTo(100,150
ألف شكرا لك على هذا الشرح المختصر والجميل..........الأن عرفت المدخل .إلي أدوخني من زماااااااااااااااااان..;)
يا شباب ساعدونى
كيف أضع صوره ببرنامج السى فى بيئة الدوس و لا أقصد الفيجول سى
سؤال ثانى
كيق اصنع قائمه فى السى
و شكرا
هذا الموضوع مغلق.