Koordinat düzlemi ve fonksiyon çizimleri

Bir gün matematik sınavına çalışırken "bağıntısı verilen bir fonksiyonun grafiğini bize çizen bir program yazsam, nasıl olur?" dedim ve kodlamaya başladım, gün geçtikçe güzelleşecek inşallah, şuanki versiyonu 0.0.1
önce yeni bir c# projesi açın windows application olarak, forma 1 buton ve 2 textbox ekleyin
işte adı henüz belli olmayan programımızın kodları:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Drawing.Drawing2D;

namespace WindowsApplication1
{
public partial class Form1 : Form
{


double xDeger1=0, xDeger2=0;



public Form1()
{
InitializeComponent();
}

private void Form1_Load(object sender, EventArgs e)
{


}

protected override void OnPaint(PaintEventArgs e)
{
int yToplamBirim, yUstNokta, yAltNokta, yOrtala, xToplamBirim, xSolNokta, xSagNokta, xOrtala, AralikSayisi;
float YukardanSifirNoktasi, SoldanSifirNoktasi, xUzakligi, yUzakligi;

#region Koordinat Değerleri
AralikSayisi = 30;
yToplamBirim = 10 * 2;
yUstNokta = 15;
yAltNokta = AralikSayisi * yToplamBirim + yUstNokta;
xToplamBirim = yToplamBirim;
xSolNokta = 200;
xSagNokta = AralikSayisi * yToplamBirim + xSolNokta;
yOrtala = (AralikSayisi * yToplamBirim / 2) + xSolNokta;
xOrtala = (AralikSayisi * yToplamBirim / 2) + yUstNokta;
YukardanSifirNoktasi = xOrtala;
SoldanSifirNoktasi = yOrtala;
#endregion

#region Koordinat Düzlemi Çizimi Kodları
//Graphics nesnemizi oluşturuyoruz
Graphics g = this.CreateGraphics();

//Y ekseninin koordinatları
Point yKoordinat1 = new Point(yOrtala, yUstNokta);
Point yKoordinat2 = new Point(yOrtala, yAltNokta);

//Drawline metodunu kullanarak çizimimizi yapıyoruz
g.DrawLine(new Pen(Brushes.Black, 1), yKoordinat1, yKoordinat2);

//X ekseninin koordinatları
Point xKoordinat1 = new Point(xSolNokta, xOrtala);
Point xKoordinat2 = new Point(xSagNokta, xOrtala);

//Drawline metodunu kullanarak çizimimizi yapıyoruz
g.DrawLine(new Pen(Brushes.Black, 1), xKoordinat1, xKoordinat2);

Graphics t = this.CreateGraphics();
StringFormat format1 = new StringFormat(StringFormatFlags.NoWrap);
Font font = new Font("Courier new", 8, FontStyle.Bold);
t.DrawString("x", font, Brushes.Red, xSagNokta, xOrtala, format1);
t.DrawString("y", font, Brushes.Red, yOrtala+5, yUstNokta-5, format1);
#endregion

double i=xDeger1;
if (i <>
xUzakligi = (float)(SoldanSifirNoktasi - (Math.Abs(i) * AralikSayisi));
else
xUzakligi = (float)(SoldanSifirNoktasi + (Math.Abs(i) * AralikSayisi));
//if (i != 0)
//{
yUzakligi = (float)(YukardanSifirNoktasi - ((i * i) * AralikSayisi));
g.DrawEllipse(new Pen(Brushes.Black, (float) (1.7)), xUzakligi, yUzakligi, 5, 5);
//}

for (i = xDeger1 + 0.01; i < i =" i">
{
if (i<0)
xUzakligi = (float) (SoldanSifirNoktasi-(Math.Abs(i) * AralikSayisi));
else
xUzakligi = (float) (SoldanSifirNoktasi + (Math.Abs(i) * AralikSayisi));
//if (i != 0)
//{
yUzakligi = (float)(YukardanSifirNoktasi - ((i*i) * AralikSayisi));
g.DrawEllipse(new Pen(Brushes.Black, (float)(1.7)), xUzakligi, yUzakligi, 1, 1);
//}
}
}

private void button1_Click(object sender, EventArgs e)
{
xDeger1 = Convert.ToInt32(textBox1.Text);
xDeger2 = Convert.ToInt32(textBox2.Text);
this.Refresh();
}
}
}

1 yorum: