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

نام تاپیک: زاویه بین دو خط

  1. #1
    کاربر دائمی آواتار Reza,M
    تاریخ عضویت
    تیر 1389
    محل زندگی
    ايران سراي من است
    پست
    412

    زاویه بین دو خط

    با سلام
    مثلا من با این کد دو خط رسم میکنم
    x = 100 : y = 50
    x1 = 150 : y1 = 10 : x2 = 200 : y2 = 50
    g.DrawLine(Pens.Black, x, y, x1, y1)
    g.DrawLine(Pens.Black, x1, y1, x2, y2)

    حال اگه بخوام به کمک زاویه همین خط ها رو رسم کنم چطور باید عمل کرد

    فکر کنم با فرمول زیر بشه ولی نمیدونم چرا عمل نمی کنه

    r = deg * PI / 180
    x2 = x + (x1 - x) * Cos(r) - (y1 - y) * Sin(r)
    y2 = y + (x1 - x) * Sin(r) + (y1 - y) * Cos(r)

  2. #2

    نقل قول: زاویه بین دو خط

    دوست من شما باید از فرمولهای تبدیل مختصات دکارتی به قطبی استفاده کنید :
    x=r*cos(theta)
    y=r*sin(theta)

    هندسه ی تحلیلی !

  3. #3
    کاربر تازه وارد آواتار en-keramat
    تاریخ عضویت
    اسفند 1390
    محل زندگی
    کرج
    پست
    80

    نقل قول: زاویه بین دو خط

    نقل قول نوشته شده توسط hakim22 مشاهده تاپیک
    دوست من شما باید از فرمولهای تبدیل مختصات دکارتی به قطبی استفاده کنید :
    x=r*cos(theta)
    y=r*sin(theta)

    هندسه ی تحلیلی !
    که با جمع کردن رابطه بالا با مختصات نقطه قبلی ، مختصات نقطه جدید محاسبه میشه

    x=X1+r*cos(theta)
    y=Y1+r*sin(theta)
    g.DrawLine(Pens.Black, x, y, x1, y1

  4. #4
    کاربر دائمی آواتار Reza,M
    تاریخ عضویت
    تیر 1389
    محل زندگی
    ايران سراي من است
    پست
    412

    نقل قول: زاویه بین دو خط

    دوستان جواب نمیده ؟؟

  5. #5

    نقل قول: زاویه بین دو خط

    عزیز من ما گفتیم فرمولش اونه ، دیگه نه اینکه شما عینشو بنویسید !
    برای رسم هم خط دو نقطه لازمه
    برای هر نقطه دو مجهول داریم.
    مختصات x و مختصات y
    فرض می کنیم شما نقطه مبدا رو دارید
    یعنی ابتدای خط مشخص است.
    برای پیدا کردن نقطه ی دوم باید از فرمول بالا استفاده کنید. درضمن حتما باید محاسبات رو به integer تبدیل کنید.

    لطفا وقتی برنامه به هر دلیلی اجرا نمیشه متن کامل کدی که نوشتید و خطایی که دریافت کردید یا مشکلی که داره رو هم شرح بدید . فقط غر زدن که کاری از پیش نمیبره !!!

  6. #6
    کاربر دائمی آواتار Reza,M
    تاریخ عضویت
    تیر 1389
    محل زندگی
    ايران سراي من است
    پست
    412

    نقل قول: زاویه بین دو خط

    نقل قول نوشته شده توسط hakim22 مشاهده تاپیک
    عزیز من ما گفتیم فرمولش اونه ، دیگه نه اینکه شما عینشو بنویسید !
    برای رسم هم خط دو نقطه لازمه
    برای هر نقطه دو مجهول داریم.
    مختصات x و مختصات y
    فرض می کنیم شما نقطه مبدا رو دارید
    یعنی ابتدای خط مشخص است.
    برای پیدا کردن نقطه ی دوم باید از فرمول بالا استفاده کنید. درضمن حتما باید محاسبات رو به integer تبدیل کنید.

    لطفا وقتی برنامه به هر دلیلی اجرا نمیشه متن کامل کدی که نوشتید و خطایی که دریافت کردید یا مشکلی که داره رو هم شرح بدید . فقط غر زدن که کاری از پیش نمیبره !!!
    چشم دوست من
    فقط اگه ممکنه یه نمونه برام بزار
    آخه اولا با زاویه مشکل دارم و اون زاویه مورد نظرم که در پست اول مقادیر عددی بهش دادم رو بدست نمیارم (هرچند زاویه رو هم به رادیان تبدیل کردم) دوما برای خط های متمادی که دیگه کاملا خطوط باهم قاطی میشن

  7. #7
    کاربر تازه وارد آواتار en-keramat
    تاریخ عضویت
    اسفند 1390
    محل زندگی
    کرج
    پست
    80

    نقل قول: زاویه بین دو خط

    Imports System.Math
    Public Class Form1

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

    Dim angle As Double = (TextBox1.Text * PI) / 180
    Dim distance As Integer = 100
    Dim X1 As Integer, Y1 As Integer
    Dim X2 As Integer, Y2 As Integer
    X1 = 0
    Y1 = 0
    X2 = X1 + distance * Cos(angle)
    Y2 = Y1 + distance * Sin(angle)

    Dim pen1 As New Pen(Color.Black)
    Dim g As Graphics

    g = Me.CreateGraphics

    g.DrawLine(pen1, X1, Y1, X2, Y2)

    End Sub
    End Class

    من یه فرم ساده به این شکل درست کردم
    Capture.JPG

  8. #8
    کاربر دائمی آواتار Reza,M
    تاریخ عضویت
    تیر 1389
    محل زندگی
    ايران سراي من است
    پست
    412

    نقل قول: زاویه بین دو خط

    دوست من منظورم اینطوری نبوده من اینطور ترسیم ها رو با کد زیر انجام میدم

    Imports System.Math
    Public Class Form1
    Dim g As Graphics
    Dim r As Double
    Dim x1, x2, y1, y2, x3, y3 As Integer
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    r = (45 * PI) / 180
    x1 = 100
    x2 = 200
    y1 = 100
    y2 = 100
    g = Me.CreateGraphics()
    g.DrawLine(Pens.Black, x1, y1, x2, y2)
    End Sub
    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
    x3 = x1 + (x2 - x1) * Cos(r) - (y2 - y1) * Sin(r)
    y3 = y1 + (x2 - x1) * Sin(r) + (y2 - y1) * Cos(r)
    g.DrawLine(Pens.Black, x1, y1, x3, y3)
    x2 = x3
    y2 = y3
    End Sub
    End Class

    در کل چطور میتونیم یک 5ضلعی منتظم رو با این روش انجام بدیم

  9. #9
    کاربر تازه وارد آواتار en-keramat
    تاریخ عضویت
    اسفند 1390
    محل زندگی
    کرج
    پست
    80

    نقل قول: زاویه بین دو خط

    نقل قول نوشته شده توسط Reza,M مشاهده تاپیک
    در کل چطور میتونیم یک 5ضلعی منتظم رو با این روش انجام بدیم
    ببین دوست عزیز من روابط ریاضی اشو میگم ، با همون روشی هم که گفته شد می تونی کد اش کنی

    هر چند ضعلی که باشه ، چون اینجا 5 ضعلی داریم
    360 نقسیم بر 5 میکنی که 72 درجه بدست میاد ، که برای قاچ از 5 ضعلی میشه
    حالا می تونی با داشتن مختصات مرکز 5 ضلعی و شعاع آن ( که میتونی از کاربر بگیری ) ، مختصات تک ، تک اضلاع محاسبه کنی
    مثلا فرض کن ما یه 5 ضعلی به مرکز 200,200 و به شعاع 50 داریم میتونه روابط اش اینطوری باشه

    x1=200+50*cos(72)
    y1=200+50*sin(72)
    -------------------------
    x2=200+50*cos(144)
    y2=200+50*sin(144
    -----------------------
    x3=200+50*cos(216)
    y3=200+50*sin(216)
    -------------------------
    x4=200+50*cos(288)
    y4=200+50*sin(288
    ------------------------
    x5=200+50*cos(360)
    y5=200+50*sin(360)

  10. #10
    کاربر دائمی آواتار Reza,M
    تاریخ عضویت
    تیر 1389
    محل زندگی
    ايران سراي من است
    پست
    412

    نقل قول: زاویه بین دو خط

    والا این مختصات 5ظلعی نمیشه ؟
    یه چیز مثل شکل زیر میخوام
    عکس های ضمیمه عکس های ضمیمه
    • نوع فایل: png 02.png‏ (69.8 کیلوبایت, 65 دیدار)

  11. #11
    کاربر دائمی آواتار Reza,M
    تاریخ عضویت
    تیر 1389
    محل زندگی
    ايران سراي من است
    پست
    412

    نقل قول: زاویه بین دو خط

    دوست من اگه لطف کنی و کد کامل رو بزاری ممنون میشم
    این تیکه کد خودم رو هم خسته کرده

  12. #12
    کاربر تازه وارد آواتار en-keramat
    تاریخ عضویت
    اسفند 1390
    محل زندگی
    کرج
    پست
    80

    نقل قول: زاویه بین دو خط

    نقل قول نوشته شده توسط Reza,M مشاهده تاپیک
    والا این مختصات 5ظلعی نمیشه ؟
    یه چیز مثل شکل زیر میخوام
    دوست عزیز اینکه پنج ضلعی منظم نیست ، این فرمول که نوشتم مثل دستور polygon اتوکد میتونه باشه که مختصات مرکز و شعاع بگیر و پنج ضلعی ترسیم کنه

    شکلی که شما دارید از ترکیب یک مثلث و مربع ساخته شده ، مختصات دهی شکل اتون باید چطوری باشه ؟ منظورم اینکه باید ورودی ها چی باشه ؟ ( از کاربر گرفته میشه ؟) و یا شکل با مختصات ثابت هستش

  13. #13
    کاربر دائمی آواتار Reza,M
    تاریخ عضویت
    تیر 1389
    محل زندگی
    ايران سراي من است
    پست
    412

    نقل قول: زاویه بین دو خط

    نقل قول نوشته شده توسط en-keramat مشاهده تاپیک
    مختصات دهی شکل اتون باید چطوری باشه ؟ منظورم اینکه باید ورودی ها چی باشه ؟ ( از کاربر گرفته میشه ؟) و یا شکل با مختصات ثابت هستش
    آره مختصات شکل ثابت است..
    عکس های ضمیمه عکس های ضمیمه

  14. #14
    کاربر تازه وارد آواتار en-keramat
    تاریخ عضویت
    اسفند 1390
    محل زندگی
    کرج
    پست
    80

    نقل قول: زاویه بین دو خط

    نقل قول نوشته شده توسط Reza,M مشاهده تاپیک
    آره مختصات شکل ثابت است..
    این شکلی که گذاشتی بر اساس این یکم روابط اش پیچیده میشه ، که از فرمولهای قبلا توضیح دادم ، راحتر ترسیم میشه این کدی که خواستی

    Imports System.Math
    Public Class Form1

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

    'Dim angle As Double = (60 * PI) / 180
    Dim Radius As Integer = 50
    Dim Xcent As Integer, Ycent As Integer
    Dim X1 As Integer, Y1 As Integer
    Dim X2 As Integer, Y2 As Integer
    Dim X3 As Integer, Y3 As Integer
    Dim X4 As Integer, Y4 As Integer
    Dim X5 As Integer, Y5 As Integer
    'X1 = 0
    'Y1 = 0
    'X2 = X1 + distance * Cos(angle)
    'Y2 = Y1 + distance * Sin(angle)
    Xcent = 200
    Ycent = 200
    '''''''''''''''''''''''''''''''''''''''''''
    X1 = 200 + 50 * Cos((72 * PI) / 180)
    Y1 = 200 + 50 * Sin((72 * PI) / 180)
    '------------------------
    X2 = 200 + 50 * Cos((144 * PI) / 180)
    Y2 = 200 + 50 * Sin((144 * PI) / 180)
    ' -----------------------
    X3 = 200 + 50 * Cos((216 * PI) / 180)
    Y3 = 200 + 50 * Sin((216 * PI) / 180)
    '-------------------------
    X4 = 200 + 50 * Cos((288 * PI) / 180)
    Y4 = 200 + 50 * Sin((288 * PI) / 180)
    ' ------------------------
    X5 = 200 + 50 * Cos((360 * PI) / 180)
    Y5 = 200 + 50 * Sin((360 * PI) / 180)

    ''''''''''''''''''''''''''''''''''''''''''
    Dim pen1 As New Pen(Color.Black)
    Dim g As Graphics

    g = Me.CreateGraphics

    g.DrawLine(pen1, X1, Y1, X2, Y2)
    g.DrawLine(pen1, X2, Y2, X3, Y3)
    g.DrawLine(pen1, X3, Y3, X4, Y4)
    g.DrawLine(pen1, X4, Y4, X5, Y5)
    g.DrawLine(pen1, X5, Y5, X1, Y1)


    End Sub
    End Class


    خروجی اش هم به این شکل میشه
    Capture.JPG

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

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