PDA

View Full Version : نیازمنده کدهای رسم کمان،دایره و متوازی الاضلاع



پیام حیاتی
یک شنبه 29 آبان 1390, 19:22 عصر
خدا لعنت کنه این جعفر نژادو از ساعت 6 تا الان هر چی برنامه مربوط به گرافیک داره رو میزنم خطا دارن دیوانم کرد.
عزیزان من کدهای رسم کمان،دایره و متوازی الاضلاع رو میخام اگر میتونید کمکم کنید.ممنونم.

2ndesigner
یک شنبه 29 آبان 1390, 20:00 عصر
تو رویداد paint فرم یا پنل از توابع e.graphics استفاده کن.

elahe7
یک شنبه 29 آبان 1390, 20:10 عصر
باید تو قسمت :public partial class Form1 : Form

Pen pen;
Graphics g;
بنویسی..
بعد قسمت :public Form1()
این دستورات رو وارد کنی تا برات قلم و محیط گرافیکو شناسایی کنه...
pen = new Pen(button1.ForeColor,2);
g = panel1.CreateGraphics();

و سپس توی محیط مورد نظرت میتونی با نوشتن g و زدن دات یا همون نقطه اشکال هندسی اون کلاسو ببینی و انتخاب کنی..

رسم کمان هم میشه از متد های FillPie ، DrawArc ،DrawPie استفاده کنی...

abbas64
یک شنبه 29 آبان 1390, 22:50 عصر
ي كد ميگذارم كه اصطلاحا بهش ميگن دواير جادويي اقليدوس ميگن با دواير تو در تو

پیام حیاتی
یک شنبه 29 آبان 1390, 23:13 عصر
ممنون از راهنمایتون اما عزیزان کسی که تازه شروع کرده باشه با این نوع توضیح دادن متوجه چیزی نخواهد شد.
من در انجمن های خارجی رسم مستطیل سرچ کردم کدها رو به این شکل :
System.Drawing.Graphics graphicsObj;

graphicsObj = this.CreateGraphics();

Pen myPen = new Pen(System.Drawing.Color.Red, 5);

Rectangle myRectangle = new Rectangle(20, 20, 250, 200);

graphicsObj.DrawRectangle(myPen, myRectangle);

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

hos7ein
دوشنبه 30 آبان 1390, 23:48 عصر
دوستان عزیز لطفا میشه کدهای رسم یک متوازی الاضلاع به رنگ سبز رو در c# بنویسید و اینجا قرار بدین؟؟

سپاس

REZAE2011
سه شنبه 01 آذر 1390, 08:31 صبح
برای اینکه بتوان روی کنترل ها اعمال گرافیکی انجام داد باید اول روی کنترل مورد نظر زمینه گرافیکی ایجاد کرد (زمینه گرافیکی در C#‎‎ سطحی را ارائه می دهند که می توان روی ان عمل ترسیم را انجام داد” برگرفته ازترجمه کتابvisual C#‎‎ 2005:how to programing ”) و بعد از ایجاد زمینه گرافیکی روی کنترل .می توان از متدهای کلاس Graphics (واقع در فضای نامی System.Drawing) برای ترسیم استفاده کرد (مانند متد هایی برای رسم خط و دایره و رسم تصویر روی کنترل و...) .
یک مثال با توضیح
مراحل ایجاد زمینه گرافیکی روی کنترلی مثل :pictureBox1
اول یک شی graphics ایجاد می کنیم
System.Drawing.Graphics g1;
بعد با متد CreateGraphics() از شی picturebox1 یک زمینه گرافیکی ایجاد کرده و حال این زمینه گرافیکی را تحویل شی g1 می دهیم و از حالا به بعد میشه با متد های شی g1 اشکال گرافیکی روی کنترل pictureBox1 ترسیم کرد:
g1 = pictureBox1.CreateGraphics();
مثلا رسم یک خط:
Pen pen1 = new Pen(Color.White );
g1.DrawLine(pen1, 10, 10, 20, 20);
و یا رسم یک دایره با متد arc
Pen pen1 = new Pen(Color.FromArgb(250 ,var2+100,var3+150) );
g1.DrawArc(pen1, (float)x, (float)y, 3, 3, 0, 360);
اخرین نکته :تمام کنترل های که در فضای نام System.windows.Forms واقع اند متد CreateGraphics() را دارند.
البته روش دیگری هم وجود دارد: می توان متدonpaint را override کرد که می تونی روی این هم کار کنی .
منابع:
کتاب how to programming with visual C#‎‎ 2005: همان deitel&deitel (بیشترین راهنمایی رو کرده)
همچنین :
کتاب سبز رنگ(نام کتاب یاد رفته) اقای جعفرنژاد قمی

موفق باشید

hos7ein
سه شنبه 01 آذر 1390, 23:37 عصر
دستور رسم متوازی الاضلاع رو هم میزاشتی دوست عزیز
ممنون

محمد فدوی
چهارشنبه 02 آذر 1390, 03:38 صبح
واااااااااااااای... یعنی اینقد پیچیدست؟!
باید از GraphicsPath استفاده کنی.
اینو تست کن:
Graphics g = this.CreateGraphics();
GraphicsPath p = new GraphicsPath();
p.AddLine(200, 100, 400, 100);
p.AddLine(500, 100, 400, 300);
p.AddLine(400, 300, 100, 300);
p.AddLine(100, 300, 200, 100);
g.FillPath(new SolidBrush(Color.Green), p);

hos7ein
چهارشنبه 02 آذر 1390, 14:12 عصر
ممنون دوست عزیز
ولی این کد ظاهرا یه خورده مشکل داشت!من وقتی این کد رو داخل یک دکمه قرار میدم سه تا پیام خطا میده هنگام اجرا شدن که اونها رو اینجا قرار میدم :

Error 1 The type or namespace name 'GraphicsPath' could not be found (are you missing a using directive or an assembly reference?) C:\Documents and Settings\DHT\Local Settings\Application Data\Temporary Projects\WindowsApplication1\Form1.cs 22 13 WindowsApplication1




Error 2 The type or namespace name 'GraphicsPath' could not be found (are you missing a using directive or an assembly reference?) C:\Documents and Settings\DHT\Local Settings\Application Data\Temporary Projects\WindowsApplication1\Form1.cs 22 34 WindowsApplication1




Error 3 The best overloaded method match for 'System.Drawing.Graphics.FillPath(System.Drawing.B rush, System.Drawing.Drawing2D.GraphicsPath)' has some invalid arguments C:\Documents and Settings\DHT\Local Settings\Application Data\Temporary Projects\WindowsApplication1\Form1.cs 27 13 WindowsApplication1



ممنون میشم راهنمایی کنین و بگین مشکل از کجاست

با سپاس

محمد فدوی
چهارشنبه 02 آذر 1390, 14:21 عصر
خب فکر کردم این لازم به گفتن نیست که باید Drawing2D رو وارد(Import) کنی... :چشمک:
using System.Drawing.Drawing2D;

حل شد؟!