PDA

View Full Version : سوال: برنامه ای شبیه Paint برای کار با گرافیک و اشکال گرافیکی



setare1122
سه شنبه 16 شهریور 1389, 10:24 صبح
دوستان سلام. من به تازگی این سایت رو پیداکردم.:لبخندساده:
در حال حاضر روی برنامه کار میکنم که با مباحث گرافیکی سرو کار داره درواقع شبیه paint ویندوز است .
و اما سوال من از دوستان
کسی میتونه منو راهنمایی کنه چطور میتونم کدی بنوسیم که کاربر با توجه به نیازش بتونه اشکال گرافیکی مثل دایره و مستطیل و چند ضلعی رسم کنه .کدهای زیادی رو امتحان کردم ولی جواب دلخواه رو نمیدن:عصبانی++:
یعنی با توجه به مختصات ماوس ...

fjm11100
سه شنبه 16 شهریور 1389, 11:09 صبح
مشکلت را دقیق تر بگو. مثلا چرا کار نمیکنه؟ توی ترسیم مشکل داری؟ توی کنترل ماوس؟

aminghaderi
سه شنبه 16 شهریور 1389, 11:27 صبح
دوستان سلام. من به تازگی این سایت رو پیداکردم.:لبخندساده:
در حال حاضر روی برنامه کار میکنم که با مباحث گرافیکی سرو کار داره درواقع شبیه paint ویندوز است .
و اما سوال من از دوستان
کسی میتونه منو راهنمایی کنه چطور میتونم کدی بنوسیم که کاربر با توجه به نیازش بتونه اشکال گرافیکی مثل دایره و مستطیل و چند ضلعی رسم کنه .کدهای زیادی رو امتحان کردم ولی جواب دلخواه رو نمیدن:عصبانی++:
یعنی با توجه به مختصات ماوس ...
از نظر الگریتمی رو من می تونی حساب کنی ، چون من قبلا یه Paint طراحی کرده بودم .
فقط بعد افطار جواب رو می دم الان روی حالت Silent هستم و فقط سوالات کوچیک رو قدرت پردازش دارم.:کف:
موفق باشی.

rezamansori
سه شنبه 16 شهریور 1389, 12:23 عصر
اگه یکم با توابع گرافیکی ور بری فکر نکنم برات سخت باشن. فقط درباره اونا یکم مطالعه کن. باور کن آسونن.

setare1122
سه شنبه 16 شهریور 1389, 13:31 عصر
مشکلت را دقیق تر بگو. مثلا چرا کار نمیکنه؟ توی ترسیم مشکل داری؟ توی کنترل ماوس؟

خب برنامه من باید شبیه paint باشه با همون مشخصات :چشمک:
برنامه من در حال حاضر فقط با brush کار میکنه.حالا باید کاری کنم که با انتخاب ابزار و حرکت ماوس رو صفحه ورها کردن اون شکل رسم بشه.:افسرده:
دوستان اگر منبعی سراغ دارین تا بتونم دراین باره مطالعه داشته باشم.معرفی کنید
با سپاس

aminghaderi
سه شنبه 16 شهریور 1389, 19:15 عصر
خوب اوب به قول دوستمون توابع گرافیک رو باید بگیری .(رسم خط ، رسم نقطه ، رسم مربع ، رسم بیضی یا دایره)
خوب حالا برای رسم یه مربع روی صفحه چکار می کنیم:
1- ابتدا با موس روی یک قسمت کلیک می کنیم و (کلید موس رو رها نمی کنیم.)
در رویداد موس کلیک براش تعریف می کنیم که مقتصات کرسر موس رو برداره (X1,Y1)
این مقتصات زاویه اول.
کد رویداد :

private void Form1_MouseDown(object sender, MouseEventArgs e)
{

}



2- موس رو در هرجایی که مایل بودیم رها می کنیم و در رویدا موس کلیک آپ تعریف می کنیم که این مقتصات رو هم به ما بدهد ، خوب این هم مقتصاد دوم (X2,Y2) .


3- مختصات اول و دوم رو به صوت به تابع رسم مستطیل پاس می دیم.
در نهایت رسم مستطیل.
کد رویداد :

private void Form1_MouseUp(object sender, MouseEventArgs e)
{

}


اشیای دیگر هم به همین روش صوت می گیره .
سوال یا جایی مبهم بود ، بگو توضیح بدم .

موفق باشی.

setare1122
چهارشنبه 17 شهریور 1389, 00:07 صبح
خوب اوب به قول دوستمون توابع گرافیک رو باید بگیری .(رسم خط ، رسم نقطه ، رسم مربع ، رسم بیضی یا دایره)
خوب حالا برای رسم یه مربع روی صفحه چکار می کنیم:
1- ابتدا با موس روی یک قسمت کلیک می کنیم و (کلید موس رو رها نمی کنیم.)
در رویداد موس کلیک براش تعریف می کنیم که مقتصات کرسر موس رو برداره (X1,Y1)
این مقتصات زاویه اول.
کد رویداد :

private void Form1_MouseDown(object sender, MouseEventArgs e)
{

}



2- موس رو در هرجایی که مایل بودیم رها می کنیم و در رویدا موس کلیک آپ تعریف می کنیم که این مقتصات رو هم به ما بدهد ، خوب این هم مقتصاد دوم (X2,Y2) .


3- مختصات اول و دوم رو به صوت به تابع رسم مستطیل پاس می دیم.
در نهایت رسم مستطیل.
کد رویداد :

private void Form1_MouseUp(object sender, MouseEventArgs e)
{

}


اشیای دیگر هم به همین روش صوت می گیره .
سوال یا جایی مبهم بود ، بگو توضیح بدم .

موفق باشی.

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

aminghaderi
چهارشنبه 17 شهریور 1389, 00:23 صبح
حالا باید شی از کلاس graphics ایجاد کنم؟
اگر نمونه کدی هست میشه لطف کنید برام بزارین اینجاشو دیگه شرمنده...:اشتباه:
چون اون برنامه من مربوط به چند سال پیش می شه و با VB6 نوشته بودم ، الان هم در داخل پک های بکاپ هاردیسکم هست که خدا می دونه تو دیسک چندم هست و...:اشتباه:

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



گرافیک : GDI, GDI+, DirectX, OpenGL
http://barnamenevis.org/forum/images/statusicon/thread_new.gif گرافیک :



ایجاد تصاویر Bitmap در زمان اجرا (http://barnamenevis.org/forum/showpost.php?p=469022&postcount=46)
ایجاد تصویر Bitmap در زمان اجرا (روش دوم) (http://barnamenevis.org/forum/showpost.php?p=498570)
رسم یک چندضلعی توپر روی یک فرم (http://barnamenevis.org/forum/showpost.php?p=467572&postcount=9)
خواندن و نوشتن رنگ یک پیکسل به کمک توابع API (http://barnamenevis.org/forum/showpost.php?p=472144&postcount=91)
خواندن و نوشتن رنگ یک پیکسل به کمک کلاس Bitmap (http://barnamenevis.org/forum/showpost.php?p=472150&postcount=92)
کشیدن نقاشی با توابع ساده گرافیکی و ذخیره خروجی در یک فایل (http://barnamenevis.org/forum/showpost.php?p=467581&postcount=10)
http://www.barnamenevis.org/forum/images/icons/icon2.gif سیاه و سفید کردن عکس با کد نویسی (http://barnamenevis.org/forum/showpost.php?p=471151&postcount=81)
Resize کردن یک تصویر با کدنویسی (http://barnamenevis.org/forum/showpost.php?p=472253&postcount=94)
Crop کردن یک تصویر (یک برش مستطیلی از تصویر) (http://barnamenevis.org/forum/showpost.php?p=472259&postcount=95)
تبدیل یک تصویر رنگی به معادل GrayScal آن (http://barnamenevis.org/forum/showpost.php?p=472269&postcount=96)
چرخاندن یک تصویر با زاویه دلخواه (http://barnamenevis.org/forum/showpost.php?p=472283&postcount=100)
ترسیم یک نوشته در مرکز یک کنترل (http://barnamenevis.org/forum/showpost.php?p=485171)
بهبود رسم شکلها با روانسازی منحنیها و زاویه ها (http://barnamenevis.org/forum/showpost.php?p=485172)
رسم یک Button (در حالتهای مختلف) به کمک +GDI (http://barnamenevis.org/forum/showpost.php?p=485173)
ترسیم برخی دکمه های ویژه به کمک +GDI (http://barnamenevis.org/forum/showpost.php?p=485175)
ترسیم انواع چک باکس ها به کمک +GDI (http://barnamenevis.org/forum/showpost.php?p=485176)
ترسیم انواع border های 3 بعدی به کمک +GDI (http://barnamenevis.org/forum/showpost.php?p=485177)
ترسیم و نوشتن مستقیم بر دسکتاپ ویندوز (http://barnamenevis.org/forum/showpost.php?p=485391)
ایجاد فرمهایی با اشکال غیرمستطیلی (http://barnamenevis.org/forum/showpost.php?p=467954)
گرفتن و تسخیر کردن (Capture) تصویر صفحه نمایش (http://barnamenevis.org/forum/showpost.php?p=469378&postcount=54)
ایجاد طیف رنگ (Gradient) بعنوان پشت زمینه ی کنترلها (http://barnamenevis.org/forum/showpost.php?p=468043&postcount=35)
کشیدن لایه شفاف با رنگ دلخواه بر روی عکس (http://barnamenevis.org/forum/showpost.php?p=492709)
سایه دار کردن یک فرم (http://barnamenevis.org/forum/showpost.php?p=494845)
برنامه ای مشابه ColorBalance فوتوشاپ (http://barnamenevis.org/forum/showpost.php?p=495627)
پر کردن یک listbox از رنگهای سیستمی (http://barnamenevis.org/forum/showpost.php?p=497992)
آشنایی با کلاس hatchBrush (http://barnamenevis.org/forum/showpost.php?p=503272)
تغییر دادن میزان تفکیک پذیری (Resulation) صفحه نمایش (http://barnamenevis.org/forum/showpost.php?p=503587)
ایجاد طیف رنگ با بیش از دو رنگ توسط ColorBlend (http://barnamenevis.org/forum/showpost.php?p=501928)


1001 نکته در سی شارپ (http://barnamenevis.org/forum/showthread.php?t=95001)

reza_2082
شنبه 07 اسفند 1389, 12:32 عصر
سلام دوستان

من دارم رو یه رنامه کار می کنم که توش احتیاج پیدا کردم که کاربرم بتونه اشکال هندسی رسم کنه

الآن مشکلی با رسم کردن ندارم

اما توی فرم های من کنترل های دیگه فرم قابلیت درگ کردن دارن

و وقتی اشکال هندسی را رسم می کنم و بعد کنترل ها درگ می شدن چیزهایی که رسک کریم پاک میشن اون کنترل درست مثل پاک کن عمل میکنه

در ضمن فرم من در نهایت پرینت میشه

موقع پرینت هم فرم من را بدون اشکال رسم شده پرینت میکنه

لطفا اگر کسی میتونه کمک کنه

ممنون

f.beigirad
جمعه 08 دی 1391, 12:42 عصر
این تالار سی شارپ آموزش رسم اشکال هندسی رو کم داره

امیدوارم دوستان بزرگوار دست بکار شن.