PDA

View Full Version : transform



benyamin_pc
جمعه 23 شهریور 1386, 16:37 عصر
برای transform کردن یه شکل باید چه الگوریتمی رو پیاده کرد؟
مثلا" یه عکس رو به شکل یه متوازی الاضلاع در بیاریم؟
اگر sample ندارین الگوریتمش رو فقط بگین چی کار باید کرد؟

PC2st
جمعه 23 شهریور 1386, 17:15 عصر
این کدها رو در رویداد Shown در یک فرم خالی قرار دهید:


Graphics g = this.CreateGraphics();
g.MultiplyTransform(new System.Drawing.Drawing2D.Matrix(1, 2, 3, 1, 2, 3));
g.DrawRectangle(Pens.Blue, 0, 0, 100, 100);

یک مستطیل که به شکل یک متوازی الاضلاع رسم میشود.
توسط متد ResetTransform، این حالت رو میتونید به حالت عادی بازگردانید.
دیگر متدها از قبیل ScaleTransform و RotateTransform و ... هم هستند.

benyamin_pc
جمعه 23 شهریور 1386, 18:03 عصر
منظور رو درست متوجه نشدید
یه عکس رو می خوام transform کنم یه عکس رو مثلا" به حالت یه لوزی در بیارم

benyamin_pc
شنبه 24 شهریور 1386, 01:12 صبح
حتما" تا حالا دیدین تو فتوشاپ یا برنامه های مشابه وقتی یه عکس رو گوشش رو می کشیم عکس کش میاد منظور من همینه چجوری میشه این کار رو کرد؟

ghafoori
شنبه 24 شهریور 1386, 09:07 صبح
دوست عزیز به این کد یک نگاهی بیاندازید این کد یک عکس را بصورت متوازی الاضلاع رسم می کند
10971

benyamin_pc
شنبه 24 شهریور 1386, 12:08 عصر
درسته همین اما به صورت دستی

gomnam
شنبه 24 شهریور 1386, 13:06 عصر
درسته همین اما به صورت دستی

در مورد GDI+ مطالعه کنید
کتابهای زیادی موجوده (english)

ghafoori
شنبه 24 شهریور 1386, 16:09 عصر
حتما" تا حالا دیدین تو فتوشاپ یا برنامه های مشابه وقتی یه عکس رو گوشش رو می کشیم عکس کش میاد منظور من همینه چجوری میشه این کار رو کرد؟




اگر بخواهی هم چین برنامه ایجاد کنی این کار کد نویسی زیادی دارد حالا من بعضی از قسمتاش را می گم اوا باید ببنی موس روس عکس هست یا نه اگر هست و با کلیک روی ان کادری دور عکس کشیده شود سپس نقاطی در کنار عکس ظاهر شود که کاربر پس از کشیدن ان عکس طی ان مسیر کوچک و بزرگ شود تقریبا فکر کنم 1000 خطی بشود برای کمک کن برنامه ام را طوری تغییر دادم که با رفتن موس روی ان شکل موس تغییر کند فکر کنم این بدردت بخورد10987

benyamin_pc
یک شنبه 25 شهریور 1386, 02:03 صبح
اینهایی که گفتین درست اما من با بقیه موضوع کاری ندارم
در واقع دقیقا" اون کاری که متد DrawImage در این قطعه کد انجام میدهد مد نظر من هست
من در مورد ماتریکس ها و bitmap data ها و چیزهایی از این قبیل اطلاعاتی دارم و برنامه های کوچکی با این ها نوشتم اگه امکان داره کار این متد رو شرح دهید


Point[] p=new Point[3] ;
p[0] = new Point(90, 10);
p[1] = new Point(200, 100);
p[2] = new Point(20, 300);
e.Graphics.DrawImage(this.Image1, p);

ghafoori
یک شنبه 25 شهریور 1386, 10:24 صبح
ببینید دات نت هر عکس را نی تواند با سه نقطه رسم کند یعنی مختصات سه گوشه عکس را می دهی برنامه خود عکس را میان این سه نقطه رسم می کند امکان جالبی است با انتخاب دقیق نقاط حتی می توانی عکس را بازتاب یا دوران بدی بدون اینکه از ماتریس دوران استفاده کنی

benyamin_pc
یک شنبه 25 شهریور 1386, 13:08 عصر
آقای غفوری منم می خوام بدونم چطوری دات نت یه عکس رو بین اون سه نقطه رسم می کند

PC2st
یک شنبه 25 شهریور 1386, 16:15 عصر
نقطه اول: گوشه چپ - بالا
نقطه دوم: گوشه راست - بالا
نقطه سوم: گوشه چپ - پایین

ghafoori
یک شنبه 25 شهریور 1386, 16:29 عصر
آقای غفوری منم می خوام بدونم چطوری دات نت یه عکس رو بین اون سه نقطه رسم می کن


فکر کنم این کار را بکند اول ابعاد چهار ضلعی فرظی را بدست می اورد سپس عکس را به ان اندازه کوچک کرده سپس عکس را بصورت خط به خط یا نقطه به نقطه رسم می کند این تنها ایده ای است که به ذهنم می اید