سلام من می خواهم یک دایره بکشم که عرض و ارتفاع آن را به سانتیمتر تعیین کنم چجوری این کار رابکنم
Printable View
سلام من می خواهم یک دایره بکشم که عرض و ارتفاع آن را به سانتیمتر تعیین کنم چجوری این کار رابکنم
سلام
شما در زمان رسم نمونه ای از شی System.Drawing.Graphics دارید، کافیست قبل از ترسیم، خصوصیت PageUnit آنرا روی System.Drawing.GraphicsUnit.Millimeter ست کنید و اعدادتان را هم در 10 ضرب کنید.
به همین راحتی !
سلام من قصد داشتم یک دوازده ضلعی بکشم که طول هر ضلعش 0.5 سانتیمتر باشد ولی نمی دونم چطور این کار را بکنم چون دستور point مکان نقطه ها را تعیین می کند آیا دستور دیگری هست و اگر می شود همین توضیح بالا را در باره یک خط 10 سانتیمتری مثال بزنید تا کاملا منظورتان را متوجه شوم ببخشید به زحمت افتاتید
سلام
واضح است که راه دیگری ندارد، مایکروسافت نمیتواند تمام اشکال دنیا را پیشبینی کند و برایش کد بنویسد! و اصولاً منطقی هم نیست.
شما اگر شکل خاصی با ابعاد خاصی میخواهید باید به ریاضیات متوصل شوید و مختصات تک تک نقاط را به دست اورید، که چندان هم سخت نیست، با داشتن شعاع و تعداد اضلاع میتوانید زاویه هر بخش و طول اضلاع را محاسبه کنید.
مثلاً برای رسم یک پاره خط 10 سانتی میتوانید از کد زیر استفاده کنید.
این کد پاره خطی بین نقطه 1و1 و نقطه 1و11 رسم میکند، یعنی طول 10 واحد.کد:Const CENTIMETER As Integer = 10 '1cm=10mm
e.Graphics.PageUnit = System.Drawing.GraphicsUnit.Millimeter
e.Graphics.DrawLine(System.Drawing.Pens.Green, 1 * CENTIMETER, 1 * CENTIMETER, 1 * CENTIMETER, 11 * CENTIMETER)
ببخشید اگر خود عدد integer بر چه واحدی است بدون تعیین یعنی مثلا Const CENTIMETER As Integer = 10
در اینجا واحد 10 چه در نظر گرفته میشود آیا اینچ هست؟
سلام
کاملاً واضح است.
به کد خط دوم دقت کردید؟؟؟
این کد واحد کار را روی میلیمتر میگذارد و برای کار در محدوده سانتیمتر کافی است اعداد را در 10 ضرب کنید
یعنی 3 سانتی متر برابر است با 30 میلیمتر، واقعاً نکته ابهامی نمیبینم.
نه من هم می دونستم این را منظورم این هست که شما pageunit را به میلی متر تنظیم نکنید و اصلا این کد را در کدهایتان نیاورید آیا به طور پیش فرض طول خط با اینچ محاسبه می شود
سلام
پیشفرض در سیستم های رایانه ای پیکسل است، که همان کوچک ترین نقطه قابل ترسیم باشد.
واحد پیکسل به ذات خیشاوندی با واحدهای انسانی مثل میلیمتر و اینچ و... ندارد.
ولی عدد dpi در اصل این دو را به هم پیوند میدهد، این عدد ممکن است در مانیتورهای مختلف و پرینترهای مختلف فرق داشته باشد و حتی شاید در محور x و y مقدار dpi مختلف باشد.
مقدار dpi مشخص کننده تعداد پیکسل ها در یک اینچ است.
یعنی وقتی میگوییم dpi وسیله ای 300 است، یعنی هر 300 پیکسل برابر با یک اینچ است، یعنی اگر شما خطی به طول 600 پیکسل رسم کنید، خط طولی برابر 2 اینچ یا حدود 5 سانتی متر پیدا میکند.
با یک تبدیل واحد ساده میتوان متوجه شد که تعداد پیکسل ها در یک میلیمتر برابر dpi/25.4 خواهد بود.
مثلاً اگر dpi همان 300 باشد، هر 8/11 (یازده و هشت دهم) یک میلیمتر خواهد بود و رسم خطی به طول 24 پیکسل نتیجه شهودی برابر 2 میلیمتر خواهد داشت.
با کمی فرمول نویسی و ضرب یا تقسیم خودتان میتوانید تبدیل واحد را انجام دهید.
اعداد Dpi همواره در دو خصوصیت DpiX و DpiY از شی Graphic در دسترس خواهد بود.
موفق باشید.
ممنون که این مشکل من را حل کردید انشاء الله به هیچ مشکلی بر نخورید در کارهایتان ولی شما در یک تایپیک گفتید که مراجع انگلیسی دارید که بهتر از msdn هست اگر می شود اسم آنها را بگویید تا دنبالش در اینترنت بگردم
سلام
مرجعی بهتر از MSDN ??????!!!!! من چه کاره بیدم !!؟؟؟!!!؟؟؟
من بعید میدانم مرجعی کاملتر از MSDN موجود باشد، نمیدانم کدام تاپیک را مد نظرتان است...
ولی به نظر من و برای من Object Browse موجود در خود VS که با فرمان View->ObjectBrowse در دسترس است، مرجعی سریعتر از MSDN است و اغلب اوقات همان Object Browse مشکلات من را کلاً از بیخ و بن حل میکند.
اگر هم چیزی بهتر از MSDN گفتم، منظورم همین بوده و آن هم "بهتر" به معنای "سریعتر و راحتتر" ...
ObjectBrowse تمام کلاسها را نشان میدهد، وراثت ها و رابطها و متدها و Overload ها و پارامترهای و البته توضیح مختصر تک خطی راجب اعضا....
در محیط کد نویسی هم برای دیدن کلاسس در ObjectBrowse کافیست روی نوع راست کلیک کنید و فرمان Go To Definition را انتخاب کنید....
سریع، کوتاه، موثر !