PDA

View Full Version : آموزش: گرافيک در ASP.NET



elnazii
چهارشنبه 06 مرداد 1389, 15:51 عصر
با ســــــــــلام:لبخندساده:.

برای کار در قسمت گرافيکی ابتدا بايد فضانام های System.Drawing و System.Drawing.2D را اضافه کنيد سپس يک شئ Bitmap و يک شئ Graphics برای کار کردن تعريف کنيد:


Dim bmp As New Bitmap (400, 400(
Dim g As Graphics = Graphics.FromImage (bmp(
g.Clear(Color. White(





حال می توانيم با استفاده از متدهای Graphics به رسم اشکال مختلف بپردازيم. برای رسم هر شکل تو خالی از يک متد Draw و برای رسم هر شکل تو پر از متد Fill استفاده می کنيم . هميشه هنگام استفاده از Draw بايد يک Pen وهنگام استفاده از Fill از يک Brush استفاده کنيد:


Dim bru As New Solid Brush (Color.Red)
Dim ps As New Pen (Color. Blue)
g.FillRectangle (b, New Rectangle (-10, -10, 320, 220))
Dim rec As New Rectangle (-100, -75, 200, 100)
g.DrawPie (ps, rec, 0, 180)





خوب حالا نوبت نمايش عکسی است که توليد کرده ايم برای اين کار کافی است Response.contenttype ر ا تنظيم نماييم. به ياد داشته باشيد که در انتها لازم است تا با فراخوانی متد Dispose، شئ های Bitmap و Graphics را از بين ببريم:


response.contenttype="image/jpeg"
'Send the image to the viewer
bmp.save (response.outputstream, imageformat.jpeg)
bmp.dispose ()
g.dispose ()





خوب حالا احتمالا يک مشکل کوچکی وجود دارد آن هم اين که تمام يا قسمتی از تصوير ساخته شده قابل ديدن نيست. اين مشکل به دليل قرارگرفتن مبدا مختصات در کناره بالا و سمت چپ تصوير به وجود می آيد در حقيقت محور Yها وارونه قرار گرفته است.

برای رفع اين مشکل از کلاس Matrix استفاده می کنيم اين کلاس با دو بردار يکه در فضای سه بعدی تعريف می شود که هر يک از اين دو بردار در حالت عادی به صورت(1,0,0) هستند. جهت چرخاندن محور Yها کافيست 1 را به 1- تبديل کنيم برای تغيير دادن محل مبدا نيز از متد Translate ماتريکس استفاده ميکنيم. سپس بايد اين تغيير را در Graphics اعمال کنيم:


Dim mt As Matrix = New Matrix (1, 0, 0, -1, 0, 0(
mt.Translate (150, 100(
g.Transform = m




دقت داشته باشيد که اين قسمت بايد بلافاصله بعد از تعريف Graphics اضافه شود.

برای رسم اشکال سه بعدی بايد با رسم هر يک از وجوه آن اشکال به طور جداگانه آن اشکال را بسازيم. مثلا برای رسم يک مکعب بايد کد زير را وارد کنيم:


Dim pf(5) As PointF
'--------------- متوازی الاضلاع بالايی
pf(0) = New PointF(120, 120(
pf(1) = New PointF(180, 120(
pf(2) = New PointF(150, 90(
Pf(3) = New PointF(120, 90)
pf(4) = New PointF(120, 120)
g.FillPolygon (bru, pf)
'--------------- متوازی الاضلاع كناری
bru.Color = Color.BlueViolet
pf(0) = New PointF(150, 90)
pf(1) = New PointF(180, 120)
pf(2) = New PointF(180, 180)
pf(3) = New PointF(150, 210)
pf(4) = New PointF(150, 90)
g.FillPolygon(bru, pf)
'----------------- مستطيل جلويی
bru.Color = Color.SteelBlue
pf(0) = New PointF(90, 90(
pf(1) = New PointF(150, 90(
pf(2) = New PointF(150, 210(
pf(3) = New PointF(90, 210(
pf(4) = New PointF(90, 90(
g.FillPolygon(bru, pf(




برگرفته از: http://www.iranASP.NET/ (http://www.iranasp.net/)