예제 #1
0
        //Noktalar kuyruðuna bir nokta ekle
        public void NoktaEkle(Nokta yeniNokta) //yeniNokta: santim tipinde
        {
            if (noktalar.Count == 0)           //eðer hiç nokta yoksa ilk noktayý sakla
            {
                noktalar.Enqueue(yeniNokta);
                //çizim formunun ilk andaki görüntüsünü sakla
                ilkGoruntu = cizimFormu.CizimAlaniGoruntusuVer(null, true);
            }
            else                                             //en az bir nokta varsa þeklin tipine göre karar ver
            {
                Nokta ilkNokta  = (Nokta)noktalar.Dequeue(); //birinci noktayý kuyruktan al
                Sekil yeniSekil = null;
                switch (tip)
                {
                case CizimTipi.Dogru:                                                    //seçili katmana bir doðru ekle
                    yeniSekil      = new Dogru(ilkNokta.Kopyasi(), yeniNokta.Kopyasi()); //yeni bir doðru oluþtur
                    yeniSekil.isim = "yeni doðru";
                    break;

                case CizimTipi.Dikdortgen:                         //seçili katmana bir dikdörtgen ekle
                    yeniSekil      = Dikdortgen.KuralliDikdortgen(ilkNokta, yeniNokta);
                    yeniSekil.isim = "yeni dikdörtgen";
                    break;

                case CizimTipi.Cember:                         //seçili katmana bir çember ekle
                    yeniSekil      = new Cember(ilkNokta.Kopyasi(), ilkNokta.Uzaklik(yeniNokta));
                    yeniSekil.isim = "yeni çember";
                    break;

                case CizimTipi.Elips:                         //seçili katmana bir Elips ekle
                    yeniSekil      = Elips.KuralliElips(ilkNokta, yeniNokta);
                    yeniSekil.isim = "yeni elips";
                    break;

                case CizimTipi.DogruSerisi:
                    //seçili katmana bir doðru ekle ve diðer doðrunun
                    //baþlangýç noktasýný bunun bitiþ noktasý yap
                    yeniSekil      = new Dogru(ilkNokta.Kopyasi(), yeniNokta.Kopyasi());                        //yeni bir doðru oluþtur
                    yeniSekil.isim = "yeni doðru";
                    SekilCizimiTamamlandi(yeniSekil);
                    yeniSekil = null;
                    NoktaEkle(yeniNokta);                             // yeni nokta sonraki doðrunun ilk noktasý
                    break;

                default:
                    break;
                }
                //çizimin tamamlandýðýný belirten olay tetikleniyor
                if (yeniSekil != null)
                {
                    SekilCizimiTamamlandi(yeniSekil);
                }
            }
        }
예제 #2
0
        //aktif olarak çizilen þeklin önizlemesini görmek için
        public void NoktaEkleOnizleme(Nokta yeniNokta)   //yeniNokta: santim tipinde
        {
            if (noktalar.Count > 0)                      //en az bir nokta varsa devam et
            {
                Nokta ilkNokta = (Nokta)noktalar.Peek(); //birinci noktayý kuyruktan bul
                Sekil sekil    = null;
                switch (tip)
                {
                case CizimTipi.Dikdortgen:                         //dikdörtgen önizlemesi
                    sekil = Dikdortgen.KuralliDikdortgen(ilkNokta, yeniNokta);
                    break;

                case CizimTipi.Cember:                         //çember önizlemesi
                    sekil = new Cember(ilkNokta.Kopyasi(), ilkNokta.Uzaklik(yeniNokta));
                    break;

                case CizimTipi.Elips:                         //elips önizlemesi
                    sekil = Elips.KuralliElips(ilkNokta, yeniNokta);
                    break;

                case CizimTipi.Dogru:                         //doðru serisi ya da doðru önizlemesi
                case CizimTipi.DogruSerisi:
                    sekil = new Dogru(ilkNokta, yeniNokta);
                    break;
                }
                if (sekil != null)
                {
                    sekil.cizgiRengi = cizimFormu.AnaForm.CizimRengiSecimi.Color;
                    goruntuGuncelle(sekil);
                }
            }
        }
예제 #3
0
 // dikdörtgenin koordinatlarý
 public override Dikdortgen DikdortgenselKoordinat()
 {
     return(new Dikdortgen(solUstKose.Kopyasi(), boyut.kopyasi()));
 }
예제 #4
0
 // doðrunun dikdörtgensel olarak koordinatlarý
 public override Dikdortgen DikdortgenselKoordinat()
 {
     return(new Dikdortgen(bas.Kopyasi(), son.Kopyasi()));
 }