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

Posts Tagged ‘kod’

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

 

WordPress Syntax Highlight eklentisi kullanımı-Syntax Highlighter and Code Prettifier Plugin for WordPress

24 Eki

Bugun bir arkadaştan yorum geldi makaleler içerisinde kodlar olduğu için karışık görünüyor programların kaynak kodunu ayrı bir dosya olarak eklememi istedi. Evet bazı makaleler çok uzun kodlarda bir o kadar uzun e durum böyle olunca makale de anlaşılmaz bir duruma geliyor.

Makalelerde projelerin, nasıl yapıldığını adım adım anlattığımız için pek mümkün değil tabiki çünkü onlara göre açıklama ekliyorum. Bende  Kod renklendiriciyi kullandım ve çok işime yaradı

Evet sol taraftaki renklendirici kullanmadan :)

altta ise ekleni kullandıktan sonraki hali sitenize hem güzel bir görünüm hem de                     kullanıcılar için daha anlaşılır hale getirebiliriz.

Öncelikle Syntax Highlighter and Code Prettifier Plugin for WordPress eklentisini indirin

Makalemizde kod ekleyeceğimiz bölüme (html kısmına)

<pre class=”brush:xml”>

bu araya kodlarımızı yazıyoruz

</pre>

Aşağıdaki tabloda brush: dan sonra kullandığınız kosun diline göre yazacaklarımızı gösteriyor örneğin yazdığımız kod c# ise “brush:csharp” olarak değiştiriyoruz (Bu eklentiyi geliştiren arkadaş keşke bunu metin editörüne bir buton koysaydı daha pratik olurdu bence :) )

Dil Uzantısı Dosya Adı
ActionScript3 as3, actionscript3 shBrushAS3.js
Bash/shell bash, shell shBrushBash.js
C# c-sharp, csharp shBrushCSharp.js
C++ cpp, c shBrushCpp.js
CSS css shBrushCss.js
Delphi delphi, pas, pascal shBrushDelphi.js
Diff diff, patch shBrushDiff.js
Groovy groovy shBrushGroovy.js
JavaScript js, jscript, javascript shBrushJScript.js
Java java shBrushJava.js
JavaFX jfx, javafx shBrushJavaFX.js
Perl perl, pl shBrushPerl.js
PHP php shBrushPhp.js
Plain Text plain, text shBrushPlain.js
PowerShell ps, powershell shBrushPowerShell.js
Python py, python shBrushPython.js
Ruby rails, ror, ruby shBrushRuby.js
Scala scala shBrushScala.js
SQL sql shBrushSql.js
Visual Basic vb, vbnet shBrushVb.js
XML xml, xhtml, xslt, html, xhtml shBrushXml.js
 
1 Comment

Posted in Wordpress