C#'ta Sinüs Dalgası Çizme Programı

Şuanda projenizi çalıştırmayı başardım. Çok teşekkür ediyorum size.
Gerisini halledebileceğimi düşünüyorum, en azından öyle umuyorum.
Tekrar teşekkürler.
 
Önemli değil ne demek.
Hocam sizi tekrar rahatsız edeceğim ama bir sorum olacaktı.
Programı istediğim şekilde modifiye ettim sayılır ancak bir sorunum kaldı.
Fonksiyonun bazı parametrelerini textbox üzerinden çekmek istiyorum. Ancak bağlantıyı bir türlü kuramadım.
Yardımcı olabilecek misiniz bu konuda da?
Çok yüklendim size farkındayım ama tamamen yabancı olduğum bir olay. Şu ana kadar hep console application yazmıştım. Bu yüzden fazlasıyla bilgisizim ve sürekli bocalıyorum.
 
Alacağınız değer sayısı kadar textbox ekleyin. Bir de Button ekleyin. Button click olayında fonksiyonu çağırın tekrar çizsin.
 
Alacağınız değer sayısı kadar textbox ekleyin. Bir de Button ekleyin. Button click olayında fonksiyonu çağırın tekrar çizsin.
Hocam zaten onları koydum ben. Şimdi MainViewModel.cs içerisindeki bir örneğin frekans diye değişkenim var. O değişkene frekansBox adındaki textbox'ın içine girmiş olan değere eşitlemek istiyorum. Bunun için sanırım butonun kod kısmından yani MainWindow.xaml.cs'in içindeki buton metodunun içerisinden MainViewModel.cs dosyası içerisinde tanımlamış olduğum frekans değerine erişebilmem gerekiyor. Ancak bu erişimi sağlayamıyorum.
Ayrıca MainViewModel sınıfına erişim sağlayamadığım için buton içerisinden fonksiyonu tekrar çağıramıyorum.
 
Tamam doğru hiç viewmodel karıştırmasaydım. Direk mainwindow.cs üzerinden size hazırlayıp yollarım. MVVM nedir bir araştırın. Wpf ve Universal uygulama geliştirirken bu yöntem kullanılıyor ve veriyi işleyen viewmodel ile arayüz kodu birbirinden ayrılmış oluyor.
Şimdi siz hangi değişkenleri değiştireceksiniz onu söyleyin. Ben size hazırlayıp yollayayım.
 
Şimdi söylediğiniz şeyi araştırmaya başlıyorum. Tekrar teşekkür ediyorum gerçekten sabahtan beri neredeyse benimle beraber uğraşıyorsunuz.
Son olarak dışarıdan alınacak değişkenler şöyle:
Genlik yani V değeri, w'nın 2πF olmasından dolayı kaynaklanan kendim tanımladığım frekans değeri ve son olarak n'in gidebileceği maksimum değeri gösteren yani sizin kodunuzdaki Fonksiyon metodunun içindeki for döngüsünün kaç kez döneceğini gösteren değeri dışarıdan almak istiyorum.
Çiz butonuna bastığımda ise bildiğiniz gibi girilen değerlere göre tekrar sinüs grafiği oluşturulacak. Ondan faydalanılarak ta karesel dalga oluşacak.
 
Buyrun burdan indirin. Ek olarak -10, 10, 0.1 değerlerini de parametre olarak alabilirsiniz.

Kod:
    public partial class MainWindow : Window
    {
        double pi = Math.PI;
        double V;
        double w;
        int N;

        public MainWindow()
        {
            InitializeComponent();
        }

        double Fonksiyon(double t)
        {
            return Fonksiyon1(V, w, N, t);
        }
        double Fonksiyon1(double V, double w, int N, double t)
        {
            double fonk = 0;

            for (int n = 1; n <= N; n = n + 2)
            {
                fonk += 4 * V / (n * pi) * Math.Sin(n * pi * t);
            }

            return fonk;
        }
        private void Button_Çiz_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                V = Convert.ToDouble(Textbox_V.Text);
                w = Convert.ToDouble(Textbox_w.Text);
                N = Convert.ToInt32(Textbox_N.Text);

                if(N%2 == 0)
                {
                    throw (new FormatException("N tek sayı olması gerekiyor."));
                }
                PlotModel çizim = new PlotModel()
                {
                    Title = "Başlık",
                    Subtitle = "Alt Başlık",
                    PlotAreaBackground = OxyColors.White
                };
                çizim.Series.Add(new FunctionSeries(Fonksiyon, -10, 10, 0.1, "Kare Fonksiyon"));
                Grafik.Model = çizim;
            }
            catch (OverflowException error)
            {
                MessageBox.Show(error.Message, "Hata");
            }
            catch (FormatException error)
            {
                MessageBox.Show(error.Message, "Hata");
            }

        }
    }



upload_2015-10-24_22-53-38.png
 
Çok teşekkür ediyorum hocam ekran çıktınızdan gördüğüm kadarıyla bana pek bir şey kalmadığını gösteriyor ancak projeyi indirdim şimdi ve çalışmıyor.
bunu diğer projenin içindeki xaml uzantılı dosya ile mi değiştireceğim?
 
Pi'yi w yapın. Düzeltmeyi unutmuşum. Nuget komutunu tekrar çalıştırın. Diğer proje ile bu projenin dosyalarını birbirine karıştırmayın.
 
Uyarı! Bu konu 8 yıl önce açıldı.
Muhtemelen daha fazla tartışma gerekli değildir ki bu durumda yeni bir konu başlatmayı öneririz. Eğer yine de cevabınızın gerekli olduğunu düşünüyorsanız buna rağmen cevap verebilirsiniz.

Geri
Yukarı