Picproje Elektronik Sitesi

PROGRAMLAMA DİLLERİ => Visual C# => Konuyu başlatan: Mucit23 - 05 Şubat 2019, 23:13:56

Başlık: C#'da polar point yapımı
Gönderen: Mucit23 - 05 Şubat 2019, 23:13:56
Selamlar

Açı ve genlikten oluşan vektörel bir bilgiyi donanımdan çekip C#'da hazırlamış olduğum görsel arayüzde göstermek istiyorum.

Amacım aşağıdaki gibi bir polar point yapmak.
(https://i.postimg.cc/zXmSdn9y/images.jpg)

Verdiğim açı ve genlik değerine göre resimdeki gibi bir grafik üzerinde gezdirmek istiyorum o noktayı. C#'ın chart kontrol toolu içinde polar chart serisi var. Bunu biraz inceledim fakat bu iki nokta arası çizgi çekiyor. Yani tek bir noktayı resimdeki gibi gezdirme yapamadım. Ama  birkaç nokta verip noktalar arası çizgi çektiriyorum. Fakat istediğim gibi değil

Bu dediğimi nasıl yaparım? Basitçe fikir verebilecek olan var mı?

Başlık: Ynt: C#'da polar point yapımı
Gönderen: tunayk - 05 Şubat 2019, 23:38:50
En kolay yöntem, forma bir PictureBox nesnesi koyarsınız. Göstermiş olduğunuz resmin noktasız halini tam kare ölçülerde resim olarak kaydedip, picturebox'ın image özelliğine bu gesmi tanımlarsınız.  Daha sonra;
isteğinize göre picturebox'ın Paint eventine veya bir butonun Click event'ine aşağıdaki kodları yazarsınız.

 PointF p = new PointF(100, 50); //Nokta konulacak konum
 Graphics g = pictureBox1.CreateGraphics(); // Çizim yapacağımız canvas
 float OffsetX=200f, OffsetY = 200f; // grafiğin 0,0 noktası. Picturebox'ın 400x400pixel olduğu varsayılmıştır
 Brush b = new SolidBrush(Color.Red);  //Noktayı boyayacak fırça
 g.FillEllipse(b, p.X + OffsetX, p.Y + OffsetY, 10, 10);  // Noktayı koyalım. 10,10 nokta genişlik ve yüksekliği,
 g.Dispose();  // canvası kapatalım.

BU şekilde istediğin yere nokta koyarsın.  Dikkat edeceğin husus formdaki koordinat ekseni 0,0 sol üst köşe, nx,ny ise sağ alt köşedir.
Başlık: Ynt: C#'da polar point yapımı
Gönderen: Mucit23 - 05 Şubat 2019, 23:59:36
Deneme için dediğinizi yaptım Form1 Load ve picturebox_paint eventlerinde deneme yaptım ama picturebox'da resim çıkmadı. Hata yok ama çalışmıyor. Sanırım eksik birşey yapıyorum.

Bu arada bilgisayarımda Devexpress kuruluydu. Devexpress chartlarına baktım. O baya gelişkin istediğim özellik var. Polar point oluşturup istediğim yere nokta koyabilecek gibiyim. Fakat kullanımını çözemedim.

Şöyle bir kulanımı olması gerekiyor okuduğum kadarıyla

chartControl1.Series["Series1"].Points.Add(new SeriesPoint(1,10));

Fakat burda "Nesne Başvurusu bir nenenin örneğine ayarlanmadı" hatası alıyorum.

Başlık: Ynt: C#'da polar point yapımı
Gönderen: tunayk - 06 Şubat 2019, 00:21:09
Muhtemelen picturebox nesnesinin boyutu 400x400 den küçüktür.  O yüzden de verdiğim koordinata çizilen nokta görünen alndan dışarıda kaldığı için göremiyorsun.

Picturebox ebeatlarını değiştir veya nokta pozisyonu ve offsetx ve y  değerlerini görünür alanda kalacak şekilde değişti. Örneğin p için 50,50 verebilirsin. OffsetX ve Y'yi de 0 olarak verirsen görünür mutlaka
Başlık: Ynt: C#'da polar point yapımı
Gönderen: Mucit23 - 06 Şubat 2019, 00:30:19
@tunayk Hocam siz denedinizmi? Ben şuan deneme yapıyorum ama yok resim çıkmıyor. Ben biraz bakayım bu konuda oldukça fazla yazı var.

Bu arada Devexpress de bahsettiğim sorunu çözdüm. Series1 yerine doğrudan numara yazmak gerekiyormuş. Fakat şöyle garip bir sorun var. Diyelim Herhangi bir yere bir tane nokta koydum. Daha sonra açı sabit kalmak şartıyla bu noktayı silip başka bir genliğe nokta koyduğumda nokta chart üzerinde sabit duruyor ama alttaki giridler değişiyor. Yani Scale değişiyor. Muhtemelen ayarla ilgili. Henüz doğru ayarı bulamadım.
Başlık: Ynt: C#'da polar point yapımı
Gönderen: tunayk - 06 Şubat 2019, 00:35:31
Evet denedim. VS2017 de herhangi bir sorun görünmüyor. Adresini verirsen mail atabilirim projeyi. DevEpress ile yürüyeceksen de sen bilirsin.

DevExpress konusunda pek bilgim yok. Genelde bu tür işleri harici komponent kullanmadan yapmaya çalışırım. İyi dökümante edilmemiş bir komponenti anlayana kadar zaten yazmış oluyorsun.
Başlık: Ynt: C#'da polar point yapımı
Gönderen: Mucit23 - 06 Şubat 2019, 00:49:28
yazmayı bende isterim hocam. Devexpress çok esnek ama taşınabilirliği ve sadeliği pek yok. Bende VS2010 var. Acaba ondan olabilirmi diye düşünüyorum ama pek sanmıyorum. Hatasız derleniyor çünkü. Eğer VS2010 da açılacak şekilde kaydedip gönderirseniz bi inceleyip ordan yürümek isterim.
ferhatyol at gmail.com
Başlık: Ynt: C#'da polar point yapımı
Gönderen: muhittin_kaplan - 07 Şubat 2019, 22:25:35
hocam pythona geliniz.(uzun süre c# yazan biri diyor bunu)
Başlık: Ynt: C#'da polar point yapımı
Gönderen: Mucit23 - 08 Şubat 2019, 00:04:47
Muhittin Abi

Donanımla bu şekilde kolay haberleşebilecek miyim? Benim Tek derdim Donanım PC haberleşmesi. Yoksa PC uygulamaları ile pek işim olmuyor.
Başlık: Ynt: C#'da polar point yapımı
Gönderen: muhittin_kaplan - 08 Şubat 2019, 00:07:53
usb seri tcp Udp gayet kolay başka çalışmam olmadı
Başlık: Ynt: C#'da polar point yapımı
Gönderen: muhittin_kaplan - 08 Şubat 2019, 00:08:40
https://matplotlib.org/examples/pylab_examples/polar_demo.html
Başlık: Ynt: C#'da polar point yapımı
Gönderen: Mucit23 - 08 Şubat 2019, 00:09:59
Ara ara bakayım abi Phytona. C# iyi güzel fakat karmaşık.
Başlık: Ynt: C#'da polar point yapımı
Gönderen: muhittin_kaplan - 08 Şubat 2019, 00:12:17
Bilgiyi hangi yöntemle alıyorsun ?
Başlık: Ynt: C#'da polar point yapımı
Gönderen: Mucit23 - 08 Şubat 2019, 01:45:17
USB veya Seri Port Ama ağırlıklı olarak USB HID
Başlık: Ynt: C#'da polar point yapımı
Gönderen: kimlenbu - 09 Şubat 2019, 13:21:12
c#'da polar grafiğe eklemek istediğin her nokta için bir seri oluştur :

PolarPointSeries series0 = new PolarPointSeries();
series0.SeriesName = "Series 0";
series0.XValues.Add(0.0);

şu siteyi referans alabilirsin :

http://helpcentral.componentone.com/NetHelp/SpreadNet7/WF/spwin-make-polar.html
Başlık: Ynt: C#'da polar point yapımı
Gönderen: Mucit23 - 09 Şubat 2019, 13:28:10
Teşekkür ederim. C# da istediğimi yaptım.