Skip to main content

AccessTr.neT


C# ile bir vektorel cizim programi basit bisi

safakkabasakal
safakkabasakal
0
3139

C# ile bir vektorel cizim programi basit bisi

#1
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
Cevapla

Bir hesap oluşturun veya yorum yapmak için giriş yapın

Yorum yapmak için üye olmanız gerekiyor

ya da
Task