AccessTr.neT

Tam Versiyon: C# ile bir vektorel cizim programi basit bisi
Şu anda arşiv modunu görüntülemektesiniz. Tam versiyonu görüntülemek için buraya tıklayınız.
Merhaba arkadaşlar.

Bu makalemde sizlere C#  ın
Kod:
using System.Drawing;

kütüphanesi kullanarak görsel bir program yapacağım .
Bu projemde formun tam merkezinde kırmızı renkli bir kare olacak ve bu kare formun kenarlarına kadar spiral hareketler yaparak gidecek.
Kare şeklindeki grafik  formun kenarına geldiğinde yeniden spiral hareketler yaparak formun merkezine gelecek.
Yani formun kenarına doğru giderken büyüyen spiraller,formun merkezine doğru giderken ise küçülen spiral şeklinde dönen bir kırmızı kare şeklimiz olacak.
Şimdi projenin kod ve tasarım kısmını sizinle paylaşacağım [Resim: simple-smile.png]
Tasarım kısmı olan form ekranıma sadece kare şeklini atacağım bir picturebox ilave ediyorum.


[Resim: Ekran-Al%C4%B1nt%C4%B1s%C4%B1.jpg]



Kod kısmı ise aşağıdaki gibidir.


Kod:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace WindowsFormsApplication5
{
public partial class Form1 : Form
{
bool bak = true;
int angle = 0;
int radius = 0;
int angleChange = 10;
int centerX;
int centerY;
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
this.Width = 800;
this.Height = 800;
Bitmap bm = new Bitmap(100, 300);
using (Graphics gr = Graphics.FromImage(bm))
{
// Draw
gr.Clear(Color.Red);
}
pictureBox1.Image = bm;
centerX = this.Width / 2;
centerY = this.Height / 2;
Point a = new Point(centerX, centerY);
pictureBox1.Location = a;
timer1.Start();
}
private double deg2rad(int deger)
{
return deger * (Math.PI / 180);
}
private void timer1_Tick(object sender, EventArgs e)
{
if( bak ){
double radian = deg2rad(angle);
Point yer = new Point(Convert.ToInt32(centerX + radius * Math.Cos(radian)), Convert.ToInt32(centerY + radius * Math.Sin(radian)));
pictureBox1.Location = yer;
angle += angleChange;
angle %= 360;
radius += 5;
if (radius == this.Width / 2) {
bak=false;
}
}
else {
double radian = deg2rad(angle);
Point yer = new Point(Convert.ToInt32(centerX + radius * Math.Cos(radian)), Convert.ToInt32(centerY + radius * Math.Sin(radian)));
pictureBox1.Location = yer;
angle += angleChange;
angle %= 360;
radius -= 5;
if (radius == 0) {
bak = true;
}
}
}
}
}



Form ekranınıza aşağıdaki gibi kırmızı renkli spiral hareket eden bir grafik şekli gelmiş olacak.(spiral hareketi tabiki şu an şekilde göremiyorsunuz fakat kodları çalıştırdığınızda göreceksiniz Img-grin)

[img=300x0]http://www.kodumundunyasi.net/wp-content/uploads/2014/11/1-300x269.jpg[/img]

Grafik programlama uygulamalarımdan ilkini sizlerle paylaşmış oldum.
Herkese iyi akşamlar dilerim.


EDİT:
Konuya eklenen açıklama Nurdan AKMAN'ın aşağıdaki bağlantıdaki anlatımından alıntı yapılmıştır.

Kod:
http://www.kodumundunyasi.net/c/c-grafik-programlama-ornek-uygulama-1.html