PDA

View Full Version : نحوه ساخت یک دستگاه مختصات دقیق



masterknight
یک شنبه 26 شهریور 1391, 18:30 عصر
سلام دوستان
من دارم یه برنامه تو #C می نویسم ه قسمت از کار برنامه رسم شکل هایی توسط کاربر روی صفحه هست. این شکلا می تونن مختصاتای دقیقی مثل (2.4567 و342.0089-) داشته باشن، که توی یک لیست ریخته میشن و در ادامه یه سری محاسبات ریاضی روشون انجام میشه. من نمیدونم این مختصاتی که بتونه اعداد اعشاری بگیره رو چه جور ایجاد کنم. تنها چیزی که میدونم استفاده از پیکسلای صفحه است که اونام فقط عدد صحیح می گیرن و اعشاری ندارن. اگه کسی بتونه کمکم کنه یه دنیا ممنون میشم خیلی کارم گیر این موضوعه

ممنون

Mahmoud Zaad
یک شنبه 26 شهریور 1391, 20:32 عصر
سلام
اگه مشکل فقط تعریف مختصات هست باید از PointF استفاده کنید
PointF p = new PointF(-342.0089f, 2.4567f);

masterknight
دوشنبه 27 شهریور 1391, 10:21 صبح
سلام
اگه مشکل فقط تعریف مختصات هست باید از PointF استفاده کنید
PointF p = new PointF(-342.0089f, 2.4567f);

خیلی از راهنمایی شما متشکرم دوست عزیز، کمک زیادی به من کردید اما من هنوز متوجه نشدم که سیستم مختصات رو چطور تعریف کنم؟
ببینید بصورت پیش فرض وقتی با استفاده از موس روی صفحه کلیک می کنم چیزی که میتونیم بگیرم اینه:

showing mouse coordinate in toolstrip //
;integer x =e.X
;integer y = e.Y
;()sslCoord.Text = "(X,Y)=" + x.ToString() + ", " + y.ToString
برنامه هایی مثل اتوکد رو اگه توجه کرده باشید پایین صفحشون مختصات موس رو تا سه رقم اعشار نشون میده
من یه همچین چیزی لازم دارم، میخوام وقتی با موس کلیک کنم یا توی یه تکست باکس یه جفت عدد اعشاری بنویسم یه نقطه ای تو صفحه انتخاب بشه تا در نهایت شکلارو بکشه.

es.es.es
جمعه 10 آذر 1391, 01:38 صبح
بارهمون pointf شدنیه مثلا میخوای یه مستطیل رسم کنی دوتا تکس باکس میذاری میگی pointf p=new point (textbox1.text,texbox2.text) این میشه نقطه شروع مستطیلت البته این کد کار نمیکنه باید اول محتویات تکست باکساتو به floatتبدیل کنی

plus
جمعه 10 آذر 1391, 02:41 صبح
دوست عزیز وقتی واحد نمایش مانیتور پیکسل هست، شما هر کاری هم بکنی نمیتونی مثلا نصف پیکسل رو نمایش بدی...
البته از اونجا که DPI موس معمولا بالاست شاید بتونی مقداری که کاربر مشخص میکنه رو بر اساس واحد های کوچکتر از Pixel از کاربر بگیری..ولی برای نمایش آخرش باید روندش کنی به پیکسل.