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

نام تاپیک: رسم یک خط به موازات منحنی برای بدست آوردن نقطه تلاقی

  1. #1

    Question رسم یک خط به موازات منحنی برای بدست آوردن نقطه تلاقی

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

    منطقش چه جوریه ؟

    خیلی تو نت گشتم ولی بی نتیجه.
    می شه یه راهنمایی کنید یا کلید واژه معرفی کنید .شاید سرچم درست نبوده .
    عکس ندا.png

  2. #2
    کاربر دائمی آواتار barnamenevisforme
    تاریخ عضویت
    بهمن 1390
    محل زندگی
    تهران،شیراز و میشه گفت تقریبا همه جای ایران
    پست
    683

    نقل قول: رسم یک خط به موازات منحنی برای بدست آوردن نقطه تلاقی

    سلام
    رسم خط که مسئله ای نداره،شما با اضافه کردن مقدار 2. به x داده های خط سبز،خط رو به موازات خط قبلی جلو میبرید،
    اما مسئله پیدا کردن نقطه تلاقی هست،که فکر میکنم باید از پردازش تصویر و گرفتن مقدار پیکسل استفاده کنید

  3. #3

    نقل قول: رسم یک خط به موازات منحنی برای بدست آوردن نقطه تلاقی

    نقل قول نوشته شده توسط barnamenevisforme مشاهده تاپیک
    سلام
    رسم خط که مسئله ای نداره،شما با اضافه کردن مقدار 2. به x داده های خط سبز،خط رو به موازات خط قبلی جلو میبرید،
    اما مسئله پیدا کردن نقطه تلاقی هست،که فکر میکنم باید از پردازش تصویر و گرفتن مقدار پیکسل استفاده کنید
    الان مسئله من رسم خطه
    کد نوشتم که مثلا به ازای هر x+2 ، x شود ولی این کد در واقع یک نمودار جدید با فاصله 2 از نمودار اصلی ساخت نه یک خط مستقیم

  4. #4
    کاربر دائمی آواتار barnamenevisforme
    تاریخ عضویت
    بهمن 1390
    محل زندگی
    تهران،شیراز و میشه گفت تقریبا همه جای ایران
    پست
    683

    نقل قول: رسم یک خط به موازات منحنی برای بدست آوردن نقطه تلاقی

    آهان،شما فقط داده های منحنی رو دارید،خوب شما اگر بخواید به اندازه 2x. وارد بشید،بینهایت خط با شیب های مختلف میتونید رسم کنید.
    باید شیب خاصی رو مد نظر داشته باشید.مثلا اگر شیب 1 رو در نظر داشته باشید،منحنی شما میشه 2.- y=x ،کافیه یک بار (0و2.)و یک بار نقطه (1و1.2) رو برای رسم انتخاب کنید
    آخرین ویرایش به وسیله barnamenevisforme : چهارشنبه 14 خرداد 1393 در 11:57 صبح دلیل: فرمول اشتباه

  5. #5

    نقل قول: رسم یک خط به موازات منحنی برای بدست آوردن نقطه تلاقی

    من از این کد استفاده کردم ولی بی فایده بود
    y=x+0.2

    hart.Series["test"].Points.AddXY(X + 0.2, y);

  6. #6
    کاربر دائمی آواتار barnamenevisforme
    تاریخ عضویت
    بهمن 1390
    محل زندگی
    تهران،شیراز و میشه گفت تقریبا همه جای ایران
    پست
    683

    نقل قول: رسم یک خط به موازات منحنی برای بدست آوردن نقطه تلاقی

    من پست خودم رو ویرایش کرده بودم ولی ظاهرا شما متوجه نشدید.
    فرمول درست 2. - y=x(تفریق،نه جمع)
    در ضمن توصیه میکنم از کنترل zedgraph که open source هم هست استفاده کنید.

  7. #7

    نقل قول: رسم یک خط به موازات منحنی برای بدست آوردن نقطه تلاقی

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

  8. #8
    کاربر دائمی آواتار barnamenevisforme
    تاریخ عضویت
    بهمن 1390
    محل زندگی
    تهران،شیراز و میشه گفت تقریبا همه جای ایران
    پست
    683

    نقل قول: رسم یک خط به موازات منحنی برای بدست آوردن نقطه تلاقی

    خواهش میکنم
    یک راه که به نظر من میرسه اینه که شما از نمودار یک خروجی با فرمت bitmap بگیرید.
    بعد از کلاس bitmap استفاده کنید.ببینید مقدار RGB پیکسل هایی که مربوط به نقاط تقاطع هستن چقدره.
    بعد میتونید برنامه رو بنویسید که بیاد پیکسل های تصویر رو بررسی کنه،هر کدوم از پیکسل ها اون مقدار بخصوص رو داشتن محل تقاطع خطوط خواهد بود.منتها اینجا آدرس پیکسل رو به دست آوردید.
    برای تبدیل ادرس پیکسل به عدد x,y باید ادرس پیکسل مبدا مختصات رو هم داشته باشید بعد بین اینها نسبت بگیرید .
    مثلا برای به دست اوردن نقطه x:
    بین مبدا تا نطقه تقاطع مثلا 17 پیکسل فاصله وجود داره،از طرفی به دست اوردید که هر 5 پیکسل یک واحد در طول محور x هست،
    پس مقدار عددی x=17/5 یا به عبارتی 3.4
    این تکنیک استفاده از پردازش تصویر هست.
    کنترل zedgraph خودش یه تابع داره به نام find nearest object شاید بشه از اون استفاده کرد ولی من خودم هنوز نتونستم ازش استفاده کنم.

  9. #9

    نقل قول: رسم یک خط به موازات منحنی برای بدست آوردن نقطه تلاقی

    نقل قول نوشته شده توسط barnamenevisforme مشاهده تاپیک
    خواهش میکنم
    یک راه که به نظر من میرسه اینه که شما از نمودار یک خروجی با فرمت bitmap بگیرید.
    بعد از کلاس bitmap استفاده کنید.ببینید مقدار RGB پیکسل هایی که مربوط به نقاط تقاطع هستن چقدره.
    بعد میتونید برنامه رو بنویسید که بیاد پیکسل های تصویر رو بررسی کنه،هر کدوم از پیکسل ها اون مقدار بخصوص رو داشتن محل تقاطع خطوط خواهد بود.منتها اینجا آدرس پیکسل رو به دست آوردید.
    برای تبدیل ادرس پیکسل به عدد x,y باید ادرس پیکسل مبدا مختصات رو هم داشته باشید بعد بین اینها نسبت بگیرید .
    مثلا برای به دست اوردن نقطه x:
    بین مبدا تا نطقه تقاطع مثلا 17 پیکسل فاصله وجود داره،از طرفی به دست اوردید که هر 5 پیکسل یک واحد در طول محور x هست،
    پس مقدار عددی x=17/5 یا به عبارتی 3.4
    این تکنیک استفاده از پردازش تصویر هست.
    کنترل zedgraph خودش یه تابع داره به نام find nearest object شاید بشه از اون استفاده کرد ولی من خودم هنوز نتونستم ازش استفاده کنم.
    مرسی
    خروجی bitmap از نمودار گرفتم ولی موفق به انجام الگوریتم شما نشدم
    اگه امکان داره با یک تکه کد بیشتر راهنمایی کنید
    ممنونم

  10. #10
    کاربر دائمی آواتار barnamenevisforme
    تاریخ عضویت
    بهمن 1390
    محل زندگی
    تهران،شیراز و میشه گفت تقریبا همه جای ایران
    پست
    683

    نقل قول: رسم یک خط به موازات منحنی برای بدست آوردن نقطه تلاقی

    سلام
    در مورد کار کردن با پیکسل های یک bitmap باید این نکته رو در نظر بگیری که فراخوانی توابع Getpixel و setpixel یک مقدار زمان بر هست.
    برای اجتناب از این کار باید بیت های اون رو lock کنی،اونوقت پردازش سریعتر انجام میشه.
    مثلا قطعه کد زیر میاد مقدار تمام پیکسل های یک bitmap رو بعد از bit lock کردن اون چک میکه:
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

    Dim bmp As New System.Drawing.Bitmap(picViewer1.Image) 'IMAGE FROM PICTURE BOX...

    Call LockBitmap(bmp) 'LOCKING BITMAP

    Dim RedValue As Int32
    Dim GreenValue As Int32
    Dim BlueValue As Int32
    Dim l As Integer = 0 ' Pixel position
    For x = 0 To bmp.Width - 1 'Pixels start with 0 so we need Height - 1
    For y = 0 To bmp.Height - 1

    l = ((bmp.Width * 3 * y) + (x * 3)) ' pixel is made of 3 parts (RGB colors)
    RedValue = rgbValues(l)
    GreenValue = rgbValues(l + 1)
    BlueValue = rgbValues(l + 2)
    If RedValue > 250 AndAlso GreenValue > 250 AndAlso BlueValue > 250 Then
    Msgbox("Pixel is of a white color...")
    ElseIf RedValue < 5 AndAlso GreenValue < 5 AndAlso BlueValue < 5 Then
    Msgbox("Pixel is of a black color...")
    Else
    Msgbox("Pixel is not white or black ...")
    End If
    Next
    Next

    Call UnlockBitmap(bmp) 'UNLOCKING BITMAP

    picViewer1.Image = (bmp)
    picViewer1.Refresh()

    End Sub

    Private Sub LockBitmap(ByVal bmp As Bitmap)
    Dim bounds As Rectangle = New Rectangle(0, 0, bmp.Width, bmp.Height)
    bmpdata = bmp.LockBits(bounds, Imaging.ImageLockMode.ReadWrite, Imaging.PixelFormat.Format24bppRgb)
    g_RowSizeBytes = bmpdata.Stride
    Dim total_size As Integer = bmpdata.Stride * bmpdata.Height
    ReDim rgbValues(total_size)
    Marshal.Copy(bmpdata.Scan0, rgbValues, 0, total_size)
    End Sub

    Private Sub UnlockBitmap(ByVal bmp As Bitmap)
    Dim total_size As Integer = bmpdata.Stride * bmpdata.Height
    Marshal.Copy(rgbValues, 0, bmpdata.Scan0, total_size)
    bmp.UnlockBits(bmpdata)
    rgbValues = Nothing
    bmpdata = Nothing
    End Sub


  11. #11
    کاربر دائمی آواتار barnamenevisforme
    تاریخ عضویت
    بهمن 1390
    محل زندگی
    تهران،شیراز و میشه گفت تقریبا همه جای ایران
    پست
    683

    نقل قول: رسم یک خط به موازات منحنی برای بدست آوردن نقطه تلاقی

    سلام
    در مورد کار کردن با پیکسل های یک bitmap باید این نکته رو در نظر بگیری که فراخوانی توابع Getpixel و setpixel یک مقدار زمان بر هست.
    برای اجتناب از این کار باید بیت های اون رو lock کنی،اونوقت پردازش سریعتر انجام میشه.
    یه نمونه برنامه براتون گذاشتم ،توی این برنامه یه کلاس تعریف کرده به نام lockbits بعد میاد ازش استفاده میکنه
    در واقع میاد مقدار پیکسل رو در تمام تصویر چک میکنه و هر جا مقدار سفید یا همون(255و255و255و255) پیدا کرد،مقدار اون رو برابر با قرمز قرار میده
    منبع:
    http://www.codeproject.com/Tips/2404...er-with-Csharp
    که در محیط Vb.net مورد استفاده قرار دادم
    فایل های ضمیمه فایل های ضمیمه

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

  1. یه راهنمایی برای بدست آوردن Sum از 3 جدول
    نوشته شده توسط nasr در بخش بانک های اطلاعاتی در Delphi
    پاسخ: 4
    آخرین پست: یک شنبه 05 آذر 1385, 16:22 عصر
  2. پیشنهاد برای بدست آوردن خبر جدید در Rss
    نوشته شده توسط PrinceDotNet در بخش ASP.NET Web Forms
    پاسخ: 3
    آخرین پست: دوشنبه 10 مهر 1385, 15:11 عصر
  3. کدی ناز برای بدست آوردن شماره سریال HDD
    نوشته شده توسط دنیای دلفی در بخش برنامه نویسی در Delphi
    پاسخ: 12
    آخرین پست: سه شنبه 18 اسفند 1383, 17:43 عصر
  4. دستور sql برای بدست آوردن موجودی ریالی
    نوشته شده توسط ahmad sajjad در بخش برنامه نویسی در Delphi
    پاسخ: 8
    آخرین پست: جمعه 02 بهمن 1383, 19:55 عصر
  5. برای بدست آوردن کل اطلاعات یک فیلد
    نوشته شده توسط sunboy در بخش مطالب مرتبط با بانکهای اطلاعاتی در VB6
    پاسخ: 1
    آخرین پست: شنبه 24 خرداد 1382, 10:02 صبح

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

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