Merhaba arkadaşlar, C#‘ ta koordinat sistemini belirlemek ve değer vererek çizgi nasıl çizilir programını sizinle paylaşıyorum. Burada dikkat etmeniz gereken Math.cos() ve Math.sin() fonksiyonları rad değeri kabul etmektedir. Dolayısıyla siz derece olarak girdiğinizde ilk önce bu değeri radyana çevirmelisiniz. Bilgisayar sistemleri default olarak radyan çalışır. Radyan da 360 derece 2pi olarak tanımlanır.

C# Çizgi Çizmek

C# Çizgi Çizmek

/ www.kaizen40.com

using System;
using System.Drawing;
using System.Windows.Forms;

namespace ParalelRobot
{
    public partial class Form1 : Form
    {
        bool draw_enable = false;

        public Form1()
        {
            InitializeComponent();

            Paint += Form1_Paint;       // çizim yapmak için eklenmelidir
        }

        private void Form1_Paint(object sender, PaintEventArgs e)
        {
            Pen redPen = new Pen(Color.Red, 1);         // kalem tanımlandı
            Pen blackPen = new Pen(Color.Black, 1);

            // koordinat çizgileri belirlendi
            PointF Pdikey_b = new PointF(200, 0);
            PointF Pdikey_s = new PointF(200, 200);
            PointF Pyatay_b = new PointF(0, 100);
            PointF Pyatay_s = new PointF(400, 100);

            e.Graphics.DrawLine(blackPen, Pdikey_b, Pdikey_s);
            e.Graphics.DrawLine(blackPen, Pyatay_b, Pyatay_s);
            
            if (draw_enable == true)
            {
                draw_enable = false;

                float x1 = 200 - Convert.ToSingle(TxtX.Text);
                float y1 = 100 - Convert.ToSingle(TxtY.Text);
                float x2 = 200 + Convert.ToSingle(Convert.ToDouble(TxtL.Text) * 
                    Math.Cos(DegToRad(Convert.ToInt32(TxtA.Text))));
                float y2 = 100 - Convert.ToSingle(Convert.ToDouble(TxtL.Text) * 
                    Math.Sin(DegToRad(Convert.ToInt32(TxtA.Text))));

                e.Graphics.DrawLine(redPen, x1, y1, x2, y2);
            }
            redPen.Dispose();
            blackPen.Dispose();
        }

        private double DegToRad(int deg)
        {
            return Math.PI * deg / 180;  // dereceyi radyana çevir
        }

        private void BtnDraw_Click(object sender, EventArgs e)
        {
            draw_enable = true;
            this.Invalidate();    // yeniden çizdir
        }
    }
}

Bu yazımızda bir koordinat sistemi oluşturarak çizgi çizmeyi denedik. Eğer koordinat sistemi oluşturmazsanız orijin noktanız formunuzun sol üst köşesi olacaktır ve pozitif değer aşağı ve sağa doğru olacaktır. Dolayısıyla formülü yazarken buna dikkat etmeniz gerekmektedir. Gerisi sizin hayal gücünüze kalmış arkadaşlar. Umarım faydalı olmuştur. İyi çalışmalar.


0 yorum

Bir cevap yazın

Avatar placeholder

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

This site uses Akismet to reduce spam. Learn how your comment data is processed.