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

نام تاپیک: دوران خط

  1. #1

    Smile دوران خط

    چطورمیشه توی سی شارپ یک خطی رو که رسم کردیم دوباره همون خط رو با زاویه داده شده و ثابت نسبت به X یا Y رسم کنیم

  2. #2

    نقل قول: دوران خط

    اگه یه سرچی میزدی تاپیک فراوون بود.

    https://barnamenevis.org/showthread.php?t=182661

  3. #3

    نقل قول: دوران خط

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

  4. #4
    کاربر دائمی آواتار Saeed.Masoumi
    تاریخ عضویت
    فروردین 1388
    محل زندگی
    نامعلوم
    پست
    539

    نقل قول: دوران خط

    سلام
    با ابنکه به نظر خودم پست قبل کامل بود اما دوباره اینجا براتون یک توضیحات بیشتری می دم امیدوارم مشکلتون حل شود:
    هدف:دوران خط قرمز حول مبداء مختصات به صورت پاد ساعت گرد
    طول خط برابر با 50 (فرض) -- زاویه برابر با 0 تا 365 درجه
    نکته 1:
    Y=Hypotenuse*Sin(θ) & X=Hypotenuse*Cos(θ)
    نکته 2: تبدیل درجه به رادیان:
    private double DegreeToRadian(double angle)
    {
    return Math.PI * angle / 180.0;
    }

    حالا می ریم برنامه رو بنویسیم:
    1- دو عدد Label رو فرمت اضافه کن اسمشون رو تغییر نده
    2-یک عدد Button رو فرمت قرار بده اسمش رو تغییر نده
    3-یک پانل 300 * 300 روی فرمت قرار بده اسمش رو تغییر نده
    4-یک تایمر رو فرمت بزار اسمش رو تغییر نده
    5-تو کد برنامه این متغییر ها رو اضافه کن:
    private double ANG = 0;
    private PointF point1;
    private PointF point2;
    private int Lenght = 50;
    private Graphics G;
    private double ang;
    private double YLength = 0;
    private double x = 0;
    6-توی کد مربوط به رویداد کلیک از Button این کد رو قرار بده:
    G = panel1.CreateGraphics();
    Pen P=new Pen(Color.Red,2);
    point1=new PointF(panel1.Width/2,panel1.Height/2);
    point2 = new PointF(point1.X + Lenght, point1.Y);
    G.DrawLine(P, point1, point2);
    timer1.Enabled = true;
    P.Dispose();
    7-تو کد مربوط به رویداد تایمرت این کد رو قرار بده:
    Pen p = new Pen(Color.Cyan);
    ANG += 10;
    if (ANG >= 360) { timer1.Enabled = false; }
    ang = DegreeToRadian(ANG);
    label2.Text = ANG.ToString();
    YLength = Lenght * Math.Sin(ang);
    x = Lenght * Math.Cos(ang);
    point2 = new PointF((float)(point1.X + x), (float)(point1.Y - YLength));
    G.DrawLine(p, point1, point2);
    p.Dispose();
    8-برنامه رو اجرا کن روی دکمه کلیک کن یک خط برات رسم می شه بعد حول مبداء مختصات به صورت پاد ساعت گرد 10 درجه 10 درجه دوران پیدا می کنه

    سوال:برای دوران حول یک نقطه دیگه بجز مبدا چه باید کرد؟
    جواب:مبدا مختصات را به آن نقطه انتقال می دهیم
    سوال : برای دوران حول(نه نسبت به) محور ها چه باید کرد؟
    جواب:محیط رسم ما 2 بعدی است لذا این کار امکان پذیر نیست
    نکته خیلی مهم:
    اصولی ترین روش برای یک مهندس نرم افزار که سعی در نوشتن برنامه های گرافیکی با محاسبات ریاضی دارد استفاده از ماتریس هاست چرا؟
    چون شما برای دوران یک خط نیاز دارید نقطه انتهای آن را با جای دیگری انتقال دهید این کار به سادگی با استفاده از قابلیت Rotate از ماتریس ها قابل عمل است
    دلیل دوم شما اگه نیاز داشته باشید مبدا مختصات رو انتقال بدید به سادگی با استفاده از Transform می توانید این کار را بکنید
    دلیل سوم شما اگه نیاز دارید طول خط را نیز تغییر دهید تنها از با استفاده از خاصیت Scale می توانید این کار را بکنید
    در ضمن این مطالب تنها در مورد رسم خط نیست همه موارد هندسی را شامل می شود و نیز تنها مربوط به محیط 2 بعدی نیست در محیط 3 بعدی نیز قابل استفاده است
    فرض کنید بخواهید در فضای 3 بعدی خطی را حول نقطه ای دوران دهید آیا عاقلانه است از روش Cos,Sin,.... نسبتهای مثلثاتی که در بالا اشاره شد استفاده کنیم؟
    عکس های ضمیمه عکس های ضمیمه
    آخرین ویرایش به وسیله Saeed.Masoumi : یک شنبه 11 بهمن 1388 در 13:41 عصر

  5. #5
    کاربر دائمی آواتار اَرژنگ
    تاریخ عضویت
    آبان 1384
    محل زندگی
    arjang8000@gmail.com
    پست
    2,736

    نقل قول: دوران خط

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

  6. #6

    نقل قول: دوران خط

    از لطفتون ممنونم جناب معصومی خیلی کمکم کردین
    مرسیییییییییییییی
    آخرین ویرایش به وسیله rozegar21 : شنبه 09 آبان 1388 در 10:29 صبح

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

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