نمایش نتایج 1 تا 7 از 7

نام تاپیک: شناسایی و انتخاب خط ترسیم شده

  1. #1
    کاربر دائمی آواتار as987498749874
    تاریخ عضویت
    مرداد 1390
    محل زندگی
    گناباد
    سن
    31
    پست
    184

    شناسایی و انتخاب خط ترسیم شده

    سلام دوستان

    برنامه من شامل مختصات اولیه و ثانویه می باشد که توسط ان یک خط ترسیم می شود
    برنامه قابلیت تشخیص ابتدا و انتهای خط در هنگام حرکت موس بوسیله نمایش یک مربع کوچک مثل اتوکد را دارد
    در این برنامه قصد دارم تا تمایزی بین خط انتخاب شده و انتخاب نشده بوجود اورم که این کار را با تغییر ضخامت خط انجام میدهم
    هر خط دارای 12 ایتم اطلاعاتی از قبیل X1,X2,Y1,Y2 رنگ و زاویه و طول و ... هست
    هدف از انتخاب خط نمایش اطلاعات مورد نظر ان است و همچنین کپی و یا انتقال خط

    حال به دنبال راهی برای تشخیص خط مورد نظر هستم البته بدون استفاده از تشخیص ابتدا و انتهای خط

    اصلا اب پاکی رو بریزم رو دستتون

    چطور میشه با داشتن مختصات نقاط کل خطوط در حافظه ، خط ترسیم شده روی فرم را تشخیص داد؟

    راحت تر از این نمی تونم بگم

  2. #2
    کاربر دائمی آواتار mehran901
    تاریخ عضویت
    آبان 1391
    محل زندگی
    پشت کامپیوتر
    پست
    750

    نقل قول: شناسایی و انتخاب خط ترسیم شده

    دوست عزیز کار خیلی ساده ای هست .... البته ی نقطه گنگ جا گذاشتی و اونم این هست که آیا برنامه در حالت اجرا خطوط رو به صورت دینامیک میسازه یا استاتیک هست ؟
    البته زیاد در روند حل سوالتون در روش من تاثیر گذار نیست


    Dim k As Line
    For Each k In Me.Controls
    rem COdes
    Next



    کد ساده بالا میاد بین کل خطوط فرم سرچ میزنه و شما به راحتی میتونید مختصات خطوط رو به شکل k.y1 k.y2 k.x1 k.x2 به دست بیارین و با توجه به مختصات موستون ببینید موس روی ابتدا انتها ( یا در حالت پیشرفته تر با کمی خلاقیت) رو خط واقع شده یا نه

    البته فک کنم منظورتن همین بود .... یعنی ی سری خط روی فرم هست موس روی این ها که قرار گرفت ضخامتش تغییر کنه

  3. #3
    کاربر دائمی آواتار as987498749874
    تاریخ عضویت
    مرداد 1390
    محل زندگی
    گناباد
    سن
    31
    پست
    184

    نقل قول: شناسایی و انتخاب خط ترسیم شده

    با سلام
    مر 30 از جوابتون

    در حقیقت من از کد زیر برای ترسیم استفاده میکنم

    dim Code(0 to 500,0 to 12)as string


    در چهار خانه اول مختصاتها و پنجم اندازه و... و دوازدهم ضخامت خط قرار دارد
    حال با استفاده از حلقه و دستور Line در یک فرم خالی اقدام به ترسیم خطوط می شود.

    ابتدا و انتها هم با استفاده از حلقه و گرفتن مختصات موس و دستور شرطی خطا انجام میشود
    به علت اینکه خط ها بهم متصل هستند و در اکثر مواقع X2,y2 خط اول با x1,y1خط دوم برابر هست نمیتوان خط مورد نظر را به این وسیله انتخاب کرد(بعضی وقتا اولی انتخاب میشه و گاهی دومی و کار جالبی نیست!)
    به همین دلیل در صدد راهی برای تشخیص یک خط به تنهایی امدم

    یک راه استفاده از حلقه و استفاده از مختصاتها و ایجاد فرمول خط و چک کردن مختصات موس درون ان با خطای کم هست که خود مشکلاتی از قبیل عدم شناسایی شیب بینهایت در وی بی است.

    حال به دنبال راهی برای این کار می گردم!؟!؟

  4. #4
    کاربر دائمی آواتار mehran901
    تاریخ عضویت
    آبان 1391
    محل زندگی
    پشت کامپیوتر
    پست
    750

    نقل قول: شناسایی و انتخاب خط ترسیم شده

    شیب بینهایت که هیجا نداریم...! اصلا بینهایتی وجود نداره... عدد بر صفر حدی میشه بینهایت حدی !
    ی جایی میرسه که شیبتون میشه عدد بر صفر و این تقسیم چون صفر ما صفر مطلقه ، ارور ویبی رو به همراه داره برای رفع این مشکل ابتدای event از دستور on error resume next و در ادامه با فضانام err شماره خطا رو چک کنین و در صورتی که مربوط به خطای تقسیم عدد بر صفر باشه ( فک کنم 6 باشه ... ی تست بزنین ) میتونید متوجه بشین که خطتون وضعیت قائم پیدا کرده !
    masalan : if err.number = 6 then ....


    در رابطه با تشخیص خطوط شما با استفاده از همین روش میتونید تشخیص بدین کار سختی نیست...! از ویژگی نام خط استفاده کنین درحالی که مختصات نقطه ابتدا و انتها میتونن در جهت تثبیت خط انتخابی بهتون کمک کنن
    آخرین ویرایش به وسیله mehran901 : جمعه 30 فروردین 1392 در 18:15 عصر

  5. #5
    کاربر دائمی آواتار setroyd
    تاریخ عضویت
    اسفند 1389
    محل زندگی
    تهران
    پست
    1,198

    نقل قول: شناسایی و انتخاب خط ترسیم شده

    اگه برات خیلی مهمه یه کاری کن با usercontrol برای خودت یه line طراحی کن و بهش hwnd بده که قابل شناسایی باشه و از اون برای فرمت استفاده کن که امکان خطا 0 باشه یا کامپوننت دانلود کن این یه پیشنهاد بو فقط ولی اگه بخوای هم میتونی همین رو با کد نویسی در بیاری راحته کار سختی نیست ولی اینی که گفتم حرفه ای تر هست و میدونی داشتن یه نشانی ثابت تو برنامه نویسی خیلی کمک میکنه خیلی مثل hwnd یا .......... ولی Line فاقد این هاست

  6. #6
    کاربر دائمی آواتار as987498749874
    تاریخ عضویت
    مرداد 1390
    محل زندگی
    گناباد
    سن
    31
    پست
    184

    نقل قول: شناسایی و انتخاب خط ترسیم شده

    مر 30 دوستان البته من با طراحی کامپوننت مشکل دارم و تقریبا کار سختیه چون علاوه بر خط از یکسری نمادها هم در ترسیم استفاده میشه

    از اقا مهران خواهش میکنم در صورتی که مشکلی نداره یک برنامه کوچیک از چیزی که گفتن بزارن چون با دستور On error بازم خطا میگیره

    مر 30

  7. #7
    کاربر دائمی آواتار mehran901
    تاریخ عضویت
    آبان 1391
    محل زندگی
    پشت کامپیوتر
    پست
    750

    نقل قول: شناسایی و انتخاب خط ترسیم شده

    خب ی مثال بسیار ساده که میتونه وقتی عدد بر صفر تقسیم شد به شما اطلاع بده
    مثلا
    :

    On Error Resume Next
    Dim k%
    k = 5 / 0
    If Err.Number <> 0 Then
    MsgBox Err.Number & " " & Err.Description
    End If

    5/0 با ارور همراه هست ولی به خاطر on error resume next برنامه متوقف نمیشه و با استفاده از فضانام err چک میکنین اگه خطا اتفاق افتاده بود شماره خطا و توضیحاتش رو بهتون بده

تاپیک های مشابه

  1. سوال: شناسایی تب انتخاب شده
    نوشته شده توسط mehdi-ghafari در بخش ASP.NET Web Forms
    پاسخ: 0
    آخرین پست: پنج شنبه 18 اسفند 1390, 17:17 عصر
  2. سوال: شناسایی ردیف انتخاب شده در datagridview
    نوشته شده توسط arashjoon در بخش VB.NET
    پاسخ: 2
    آخرین پست: سه شنبه 25 مرداد 1390, 02:39 صبح
  3. تبدیل شکل ترسیم شده PictureBox به فایل
    نوشته شده توسط Morteza Manafpour در بخش برنامه نویسی در 6 VB
    پاسخ: 3
    آخرین پست: جمعه 15 مهر 1384, 16:08 عصر
  4. چگونگی شناسایی رکورد انتخاب شده در listview
    نوشته شده توسط rezaei manesh در بخش VB.NET
    پاسخ: 6
    آخرین پست: یک شنبه 23 اسفند 1383, 08:05 صبح
  5. شناسایی افرادی که وارد سایت شده اند
    نوشته شده توسط javad3151 در بخش ASP.NET Web Forms
    پاسخ: 1
    آخرین پست: شنبه 02 آبان 1383, 17:46 عصر

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •