Haberler:

Foruma Resim Yükleme ve Boyut Sınırlaması ( ! )  https://bit.ly/2GMFb8H

Ana Menü

grafik çizdirme ve oynatma

Başlatan jackal183, 21 Nisan 2011, 21:19:50

jackal183

elektronikçi arkadaşlar bilir, bir dalga belirli bir bölgede ilerlerken ortam değiştiyse eğer, değişen ortamın elektrik ve manyetik özelliğine göre, dalganın bir kısmı geri yansır bir kısmı da diğer ortamda yoluna devam eder.

peki arkadaşlar bunu visual c++ ile nasıl yaparım. iyi seviyede C biliyorum Visual C++ hiç bilmiyorum, direk grafik çizimi ve bu grafiklerin görsel olarak hareketini ( üstte bahsettiğim dalga hareketlerinin animasyon gibi) nasıl yapabilirim? ya da grafik çizimi ile ilgili önerebileceğiniz bir kaynak var mı?

kudretuzuner

Merhaba
C# ilginizi çekti mi?Ben biraz VB.Net biliyorum oldukça esnek,istediğiniz pictureboxları veya ses dosyalarını rahatlıkla işleyebiliyor.
Amatör

jackal183

ben C bildiğim için c++ dedim kardeş, basic de olabilir, bunu yapabileceksem eğer

kudretuzuner

Merhaba
C++ bildiğinizi yazdığınız için C# önerdim.Express studio ücretsiz.indirirseniz tüm diller hakkında bilgi sahibi olursunuz C#,VB Net vs.Kolay gelsin
http://www.microsoft.com/visualstudio/en-us/products/2010-editions/express
Amatör

z

Dalgalari nasil gostereceksin? Ilerleyen yay parcaciklari olarak mi yoksa sinusel bir sinyali yurutsen yeterlimi? Yoksa kafanda cok daha farkli bir sekil mi var?

Bana e^st de diyebilirsiniz.   www.cncdesigner.com

jackal183

Alıntı yapılan: bunalmis - 22 Nisan 2011, 00:16:18
Dalgalari nasil gostereceksin? Ilerleyen yay parcaciklari olarak mi yoksa sinusel bir sinyali yurutsen yeterlimi? Yoksa kafanda cok daha farkli bir sekil mi var?

ilerleyen sinüs dalgası olacak kardeş, bir tane sinyal olacak

jackal183

Alıntı yapılan: gerbay - 22 Nisan 2011, 01:04:18
http://www.mitov.com/html/plotlab.html

hocam bunu bir dene istersen, ticari olmayan kullanım için free.. (hem GDI+ kullanıyor, hem de MMX/SSE opcode lar ile assembly de yazılmış çok hızlı rutinleri var)

Ayrıca, Visual C++ değil de C++Builder kullanıyor olsaydınız onun içerisinde hazır "Scope" component i var..

Ben de şununla uygulama yapmıştım ama bu paralı;

http://www.iocomp.com/

(bu arada, mitov un diğer ürünlerine de bir bakın çok beğeneceğiniz ürünleri var)

C++ Builder de olur kardeş, görsel C hakkında bilgim yok, ben mikroişlemci programlarken kullandığımız C'yi iyi biliyorum

ferdem

Hocam Matlab i de değerlendirebilirsiniz, yapmak istediğiniz şeyi Matlab de çok daha kolay yapabilirsiniz, hiç bilmiyor bile olsanız -öğrenmenizi de hesaba katarak- daha kolay olacaktır diye düşünüyorum.
Asıl mesele problemin nasıl çözüleceği, düzlem dalga yüzeye çarptığında bir transient olur, sonra steady state duruma geçer. Eğer transient durumu göstermek istiyorsanız FDTD(finite difference time domain) gibi bir yöntem kullanmanız gerekir, eğer steady state durumu göstermek isterseniz fazör ile basitçe çözümü bulur sonra exp(+- iwt) ile zaman domainine dönebilirsiniz. Internette yapmak istediğinize benzer animasyonlar görüyordum, bir tanesi aşağıda:
http://www.met.reading.ac.uk/clouds/maxwell/

Ayrıca şu yazının son kısmı da fikir verebilir. İyi çalışmalar.

The Gariban

Sayın Ferdem
Blogunuzdaki yazıları çok beğendim anlatma üslubunuzu da konuları mümkün olduğu kadar basite  indirmenizde çok güzel.Türkiyede bu denli bilgili mühendislerin olmasından dolayı gurur duyuyorum 
Başarılarınızın devamını dilerim
Saygılarımla


GreeN

Borland C builder 6 ile
Sinüsü aşağıdaki gibi çizdirebilirsin. Yada istediğin herşeyi. Canvas konusunu incelerse çok değişik çizimleri kolaylıkla yapabilirsin.
Kaydırmayıda faz farkı ekleyerek yapabilirsin.
Aşağıdaki Kodu FormPaint Altına yapıştır.

float x0,y0;
y0=Form1->Height;
x0=Form1->Width;
float x;
float y;
int i,j=0;

for(x=0;x<=720;x++){
//y=fonksiyon;
y=40*sin(x/(45));
Canvas->Pixels[x][y0/2-y]=clLime; //
}
//*************koordinat sistemi çizdirme**************
Canvas->Pen->Color = clRed;
Canvas->MoveTo(0,y0/2);
Canvas->LineTo(720,y0/2);

Canvas->Pen->Color = clRed;
Canvas->MoveTo(10+i*2,y0*9/10+1);
Canvas->LineTo(720,y0*9/10+1);

Canvas->Pen->Color = clRed;
Canvas->MoveTo(256,y0*9/10);
Canvas->LineTo(256,0);
Terörü Lanetliyoruz.

jackal183

Alıntı yapılan: ferdem - 22 Nisan 2011, 09:55:49
Hocam Matlab i de değerlendirebilirsiniz, yapmak istediğiniz şeyi Matlab de çok daha kolay yapabilirsiniz, hiç bilmiyor bile olsanız -öğrenmenizi de hesaba katarak- daha kolay olacaktır diye düşünüyorum.
Asıl mesele problemin nasıl çözüleceği, düzlem dalga yüzeye çarptığında bir transient olur, sonra steady state duruma geçer. Eğer transient durumu göstermek istiyorsanız FDTD(finite difference time domain) gibi bir yöntem kullanmanız gerekir, eğer steady state durumu göstermek isterseniz fazör ile basitçe çözümü bulur sonra exp(+- iwt) ile zaman domainine dönebilirsiniz. Internette yapmak istediğinize benzer animasyonlar görüyordum, bir tanesi aşağıda:
http://www.met.reading.ac.uk/clouds/maxwell/

Ayrıca şu yazının son kısmı da fikir verebilir. İyi çalışmalar.

hocam matlabda sıkıntı yok zaten, onunla çok rahat bir şekilde yapılabiliyor, ancak C++ da yaparsam bonus puan alıyorum :), zaten yapamazsam hemen matlaba dönceğim, yapacağım şey de zaten tam olarak FDTD yöntemi kullanılarak yapılacak

jackal183

Alıntı yapılan: GreeN - 22 Nisan 2011, 16:11:21
Borland C builder 6 ile
Sinüsü aşağıdaki gibi çizdirebilirsin. Yada istediğin herşeyi. Canvas konusunu incelerse çok değişik çizimleri kolaylıkla yapabilirsin.
Kaydırmayıda faz farkı ekleyerek yapabilirsin.
Aşağıdaki Kodu FormPaint Altına yapıştır.

float x0,y0;
y0=Form1->Height;
x0=Form1->Width;
float x;
float y;
int i,j=0;

for(x=0;x<=720;x++){
//y=fonksiyon;
y=40*sin(x/(45));
Canvas->Pixels[x][y0/2-y]=clLime; //
}
//*************koordinat sistemi çizdirme**************
Canvas->Pen->Color = clRed;
Canvas->MoveTo(0,y0/2);
Canvas->LineTo(720,y0/2);

Canvas->Pen->Color = clRed;
Canvas->MoveTo(10+i*2,y0*9/10+1);
Canvas->LineTo(720,y0*9/10+1);

Canvas->Pen->Color = clRed;
Canvas->MoveTo(256,y0*9/10);
Canvas->LineTo(256,0);


teşekkür ederim hocam ehnüz başlamadım ama başlayınca bu çok işime yarayacak gibi görünüyor