PDA

View Full Version : سوال: مشکل در ترسیم گرافیکی یک صفحه مختصات



pooya1072
شنبه 18 شهریور 1391, 09:24 صبح
سلام
من می خوام توی فرمم یک صفحه مختصات دو بعدی رسم کنم و توی این صفحه چند نقطه رو نمایش بدم.در مورد نمایش نقاطی که مقادیر x و y آنها اعداد صحیح است مشکلی ندارم.ولی نقاطی که این مقادیر به صورت اعشاری هستند چطور؟
اگر درست متوجه شده باشم ترسیم یک نقطه بر اساس پیکسل تعریف شده.از اونجایی که شماره پیکسل یه عدد صحیح است چطور باید یه نقطه با مختصات اعشاری رو رسم کرد؟

pooya1072
شنبه 18 شهریور 1391, 23:09 عصر
خب سوال رو دقیق تر مطرح می کنم شاید جوابی بگیرم.[LTR_INLINE]




Private Sub Form2_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Click
Dim LocalMousePosition As Point = Me.PointToClient(Cursor.Position)
Dim G As Graphics = Me.CreateGraphics
Dim P As New Pen(Color.Black)
Dim Diameter As Integer = Val(TextBox1.Text)
G.DrawEllipse(Pens.Black, LocalMousePosition.X, LocalMousePosition.Y, Diameter, Diameter)
End Sub


به آخرین دستور دقت کنید.مقادیر LocalMousePosition.X, LocalMousePosition.Y موقعیت نشانگر موس در صفحه را نشان می دهند که باید مقادیر صحیح باشند. ترفندی هست که من بتونم مثلا نقطه در مختصات (10و20.5) رسم کنم.

the king
یک شنبه 19 شهریور 1391, 02:39 صبح
سلام
من می خوام توی فرمم یک صفحه مختصات دو بعدی رسم کنم و توی این صفحه چند نقطه رو نمایش بدم.در مورد نمایش نقاطی که مقادیر x و y آنها اعداد صحیح است مشکلی ندارم.ولی نقاطی که این مقادیر به صورت اعشاری هستند چطور؟
اگر درست متوجه شده باشم ترسیم یک نقطه بر اساس پیکسل تعریف شده.از اونجایی که شماره پیکسل یه عدد صحیح است چطور باید یه نقطه با مختصات اعشاری رو رسم کرد؟

به اینکار میگن Interpolation، وقتی فرضا x برابر 4.2 هست، بخشی اش روی 4 ئه و بخشی اش روی 5، باید 80 درصد رنگ روی x ئه 4 قرار بگیره و 20 درصد روی x ئه 5
همینکار در مورد محور y هم انجام میشه. در نتیجه عملا ممکنه بجای یک نقطه چهار نقطه کنار هم رو رنگ کنید.
شبیه همون کاری که برای ترسیم های Anti-Aliased و یا تغییر ابعاد تصویر با متد Bilinear انجام میشه.

WorldVbMan
یک شنبه 19 شهریور 1391, 05:54 صبح
یه راهکار ساده اینه که اگر دقت اعشارت در حد دهمه، هر ده پیکسل رو یک عدد در نظر بگیری، حالا خیلی راحت می تونی مقادیر اعشاری با دقت دهم رو نشون بدی.
مثلاً پیکسل یازدهم میشه 1.1 و بیستمی میشه 2 و به همین ترتیب.
استفاده از OpenGL هم ممکنه ولی اگر یه چند ده هفته ای فرصت دارید تا یاد بگیریدش!!

pooya1072
دوشنبه 20 شهریور 1391, 00:14 صبح
استفاده از OpenGL هم ممکنه ولی اگر یه چند ده هفته ای فرصت دارید تا یاد بگیریدش!!

دست گلت درد نکنه !!! :چشمک: