Respond needs javascript to run. To find out more click here
Projelerim » Sayfa 3 » Serdar Demir
RSS
 

Archive for the ‘Projelerim’ Category

C# 2 boyutlu cisimleri döndürme programı indir-2D-3D

04 Kas

Bu proje ile 2 boyutlu cisimleri panelimizin üzerine çizip şekil üzerinde basit işlemler yapacağız döndürme, öteleme ,simetrisini alma, meyillendirme

Bildiğimiz gibi koordinat sisteminde y ekseni aşağıya doğru gittiğimizde azalırdı. Bilgisayarımızda ise y ekseni aşağıya doğru artar. Öncelikle çizgiyi çizeceğimiz algoritmayı belirleyip fonksiyonunu oluşturuyoruz. Ben DDA algoritmasını kullanacağım fonksiyonumuzu oluşturalım;

 void DDAkareciz(int x1, int y1, int x2, int y2)
        {
            int PikselSayisi;
            int dx, dy;
            float x, xFark;
            float y, yFark;
            dx = x2 - x1;
            dy = y2 - y1;
            PikselSayisi = Math.Abs(dx) > Math.Abs(dy) ? Math.Abs(dx) : Math.Abs(dy);
            xFark = (float)dx / (float)PikselSayisi;
            yFark = (float)dy / (float)PikselSayisi;
            x = (float)x1;
            y = (float)y1;
            System.Drawing.Graphics tualgraphics = panel1.CreateGraphics();
            System.Drawing.SolidBrush m_tualbrush = new System.Drawing.SolidBrush(m_brushcolor);
            while (PikselSayisi > 1)
            {
                    tualgraphics.FillEllipse(m_tualbrush, (int)Math.Floor(x + 0.5F), (int)Math.Floor(y + 0.5f), 3, 3);
                x += xFark;
                y += yFark;
                PikselSayisi--;
            }
        }

Projemizde kullanacağımız global değişkenleri tanımlıyoruz;

#region degisken
        int x1 = 20, y1 = 20, x2 = 70, y2 = 20, x3 = 70, y3 = 70, x4 = 20, y4 = 70;
        int xorjin, yorjin;
        int art = 1;
        int artsag=1;
        #endregion

Şimdi panelimize koordinat düzlemi çizelim;

Pen kalem = new Pen(Color.Black);

            Graphics grafik = panel1.CreateGraphics();
            grafik.DrawLine(kalem, 1, panel1.Height / 2, panel1.Width, panel1.Height / 2);
            grafik.DrawLine(kalem, panel1.Width / 2, 1, panel1.Width / 2, panel1.Height);

Ben burada c# ın çizgi çizme fonksiyonunu kullandım hızlı oldugu için bu kodu panelin paint olayına yazıyoruz. Genişlik be yüksekliğin tam ortasından iki çizgi çiziyor Ve paneliize koordinat düzlemi çizilmiş oluyor.
Şimdi kare çizme fonksiyonunu oluşturalım; DDA algoritmamızı dört kez çağıracağız tek tek bütün cizgileri bu şekilde çizeceğiz.
Kareyi çizecek olan butonun cilck olayına aşağıdaki kodu yazıyoruz;

  private void btnReset_Click(object sender, EventArgs e)
        {
        xorjin = panel1.Width / 2;
        yorjin = panel1.Height / 2;
        kareciz(xorjin + x1, yorjin - y1, xorjin + x2, yorjin - y2, xorjin + x3, yorjin - y3, xorjin + x4, yorjin - y4);

        }

Artık panelimize koordinat sistemini ve kareyi çizdik; Ölçeklendirme de aynı mantık koordinatlarla oynayarak istediğiniz boyutta oluşturabilirsiniz ayrıca istediğiniz çokgeni çizebilirsiniz.
Burada en önemlisi döndürme olayı yukarıda tanımladığımız global değişkenler burda işimize yarayacak.
Vectörlerden hatırlarsınız açısı verilen dogrunun uzunlugunu bulmayı burda kullanacağız x1 ve y1 ile( verilen açı değerlerinin) sinalfa ve cosalfa değerleriyle çarparak yeni çizilecek karenin yerini belirliyoruz.

private void tRotDeg_Scroll(object sender, EventArgs e)
        {
            panel1.Refresh();
            textBox1.Text = Dondur.Value.ToString();
            int xx1, yy1, xx2, yy2, xx3, yy3, xx4, yy4;
            double alfacos, alfasin;
            xorjin = panel1.Width / 2;
            yorjin = panel1.Height / 2;
            alfacos = Math.Cos(Convert.ToInt32(Dondur.Value) * 3.1415 / 180);
            alfasin = Math.Sin(Convert.ToInt32(Dondur.Value) * 3.1415 / 180);
            xx1 = xorjin + Convert.ToInt32(x1 * alfacos - y1 * alfasin);
            yy1 = yorjin - Convert.ToInt32(x1 * alfasin + y1 * alfacos);
            xx2 = xorjin + Convert.ToInt32(x2 * alfacos - y2 * alfasin);
            yy2 = yorjin - Convert.ToInt32(x2 * alfasin + y2 * alfacos);
            xx3 = xorjin + Convert.ToInt32(x3 * alfacos - y3 * alfasin);
            yy3 = yorjin - Convert.ToInt32(x3 * alfasin + y3 * alfacos);
            xx4 = xorjin + Convert.ToInt32(x4 * alfacos - y4 * alfasin);
            yy4 = yorjin - Convert.ToInt32(x4 * alfasin + y4 * alfacos);
            kareciz(xx1, yy1, xx2, yy2, xx3, yy3, xx4, yy4);
        }

Ben projede trackbar kullandım siz textbox scroll gibi kontroller de kullanabilirsiniz.

DOWNLOAD

 

Transaction Nedir SQL Server

28 Eki

Transaction Nedir?

Bu yapıyı kullandığımızda yaptığımız işlem bitene kadar diğer işlemlerin yapılmasını engelleyebiliriz. Transaction:Birden çok işlemin bir arada yapıldığı durumlarda eğer parçayı oluşturan işlemlerden herhangi birinde sorun olursa tüm işlemleri iptal etmeyi sağlar

Örneğin kredi kartı ile alışveriş olayında transaction olayı vardır, siz marketten ürün alırken sizin hesabınızdan para düşülecek marketin hesabına para aktarılacaktır bu işlemde hata olmaması gerekir ve bu işlem transaction blogu sayesinde yapılır. Yani kodlarımız sırayla işler bu esnada bir sorun çıkarsa bütün işlem RollBack sayesinde iptal edilir.

Sql server da bir çok transaction kullanımı vardır. Kullanılan transaction sayısını

@@transcount --Transaction sayısı

Çalışmakta olan bir transaction hakkında bilgi edinebilmek için ise aşagıdaki kodu yazıyoruz;

DBCC Opentran

Çıktısı:
Transaction information for database ‘serdar’
Oldest active transaction:
SPID(server process ID):52
UID(User ID):1
Name:user_transaction
LSN:(23:334:1)
Start Time:Oct 28 2009 20:06:33PM
Transaction işlemi esnasında transaction a parametreler verilir
REAL COMMITTED:Transaction sırasında değişikliğe uğrayan onaylanmamış kayıtların okunmasına izin vermez (bu sayfalara dirty page adı verilir)

REAL UNCOMMITTED:Transaction sırasında değişikliğe uğrayan onaylanmamış kayıtların okunmasına izin verir (bu sayfalara dirty page adı verilir)

REPEATABLE READ:

SERIALIZABLE:Transaction bitene kadar kullanıcıların kayıt güncelleme ve yeni kayıt girmesine izin vremez.

Set Transaction isolation level read committed
DBCC UserPoints

Yukarıdaki işlem meydana gelen değişiklikleri gösterir.
Şimdi Transaction ile ilgili bir uygulama yapalım;
Öncelikle bir veritabanı oluşturuyoruz ve 2 adet banka tablosu yapıyoruz birinci bankadaki hesaba 2. bankadan havale yapacağız.Tablo alanlarımız işlem no, hesap no,mevduat 2. bankanında alaları böyle olacak
veritabanımıza biraz kayıt giryoruz hesap numarası ve mevduatları;
Bir store procedure oluşturalım;

CREATE PROCEDURE transfer1
@kaynak int,@hedef int
as
begin tran transfer1
update ziraatbank set mevduat=mevduat-800 where hesapno=@kaynak

update vakıfbank set g_mevduat=g_mevduat-800 where g_hesapno=@hedef

if not exists (select * from vakıfbank where g_hesapno=@hedef)
begin
rollback tran transfer1
raiserror('Transfer Edeceginiz Bankada Böyle Bir hesap Numarası yok',16,1)
end
else
begin
commit tran
return 1
end

Prosedürümüzü kaydedip ve c# da formumuzu oluşturuyoruz ve şu kodları yazıyoruz

private void button1_Click(object sender, EventArgs e)
        {
            SqlConnection c = new SqlConnection();
            c.ConnectionString = "Data Source=SERDAR-PC\\SQLEXPRESS;Initial Catalog=ziraat;Integrated Security=True;Pooling=False";
            SqlCommand co = new SqlCommand();
            co.Connection = c;
            co.CommandType = CommandType.StoredProcedure;
            co.CommandText = "transfer1";
            co.Parameters.AddWithValue("@kaynak", textBox1.Text);
            co.Parameters.AddWithValue("@hedef", textBox2.Text);
            c.Open();
            try
            {
                co.ExecuteNonQuery();
                MessageBox.Show("transfer tamam");
            }
            catch (SqlException z)
            {
                MessageBox.Show(z.Message);

            }
            finally
            {
                c.Close();
            }
        }

Uygulamamızı çalıştırıyoruz ve girmiş olduğumuz hesap numarası diğer bankada mevcutsa havale işlemini yapıyor eğer mevcut değilse işlem sona eriyor;

 

C# Kapatma Sayacı Programı

24 Eki

C# Kapatma Sayacı

Öyle zamanlar olur ki, bilgisayarın birşey yapması gerekir ama başında bulunacak vaktiniz yoktur ve iş bitince bilgisayarın kapanmasını istersiniz.

Bazı programlar işlerini bitirince kapatma gibi bir seçeneğe sahip olsa da çoğu programda bu seçenek bulunmaz. Arada sırada bana da lazım olduğu için, bende bu soruna çare olacak bir program yapayım dedim ve aşağıdaki programı yaptım. Bence güzel oldu birde siz bakın diye burda yayınlıyorum. İndir

 
3 Comments

Posted in C#, Projelerim