Sida 1 av 1

Vågformer i Borland C++ Builder?

Postat: 17 juli 2006, 21:29:17
av Virror
Någon som har använt Borland C++ builder eller bara är bra på att koda? Skulle behöva lite hjälp med hur man skapar grafiska vågformer med hjälp av en tabell mätvärden? Inte så snyggt att bara sätta ut en pixel för varje mätvärde....

Postat: 17 juli 2006, 21:36:14
av strombom
rita linjer mellan punkterna istället ?

/Johan

Postat: 17 juli 2006, 21:53:40
av Icecap
Jag använder BCB6.

Skapa en tom form och använd "Canvas->LineTo(...)" t.ex.

Först ska man såklart placera pennen på ett startpunkt med "Canvas->moveTo(...)".

Postat: 17 juli 2006, 22:10:41
av Virror
Ok, tackar för svaren, lär bli "rita mellan punkter" varianten eftersom det funkar bra och är enklast.

Postat: 17 juli 2006, 22:35:05
av babbage
Det här är ett vanligt problem som går under samlingsnamnet "interpolering", att "fylla ut"/gissa/"snygga till" hur det ser ut mellan punkterna. Lämpliga metoder att söka efter är t.ex. "spline", "trigonometriska polynom", "polynominterpolation". Metoden att rita linjer mellan punkterna kallas "linjär interpolation" och är den enklaste, det kan bli lite kantigt men det kan kanske ändå vara bättre än med splines som ger "snyggare" kurvformer. Med linjär interpolation ser man lätt att det just är linjär interpolation. Med splines kan man förledas att tro att de interpolerade värdena är sanna trots att det bara är matematiskt uträknade.

Ett närliggande problem är om man vet att punkternas placering kan beskrivas teoretiskt med en matematisk funktion, då kan man göra kurvanpassning med t.ex. "minsta kvadratmetoden". Med kurvanpassning är det dock inte säkert att den resulterande kurvformen går precis igenom de ursprungliga punkterna.

Postat: 17 juli 2006, 23:19:09
av Virror
Tanken är att det är ett logg program som ska rita upp valt tidsintervall som en oscilloskopsbild ungefär, så det kan bli lite hur som hellst, men det borde funka bra med linjär bara man har gott om mätvärden.

Postat: 17 juli 2006, 23:47:55
av baron3d
Varför inte kubisk interpolering.

Postat: 18 juli 2006, 04:56:36
av chille
Hjälp! Man blir ju förvirrad när man hör alla svenska namn på olika typer av interpolering. Visste knappt att det existerade översättningar. :oops:

Jag har en hel del färdig kod för interpolering, dock vet jag inte om jag har allt som C-kod, eller om det är andra språk. Använde nämligen PHP för att prova lite olika algoritmer och mecka med dom tills jag fick fram önskat resultat.

Postat: 18 juli 2006, 11:30:33
av Virror
Skulle räcka gott och väl bara med en algoritm beskrivning i påhittad pseudokod. :)

Postat: 18 juli 2006, 13:19:01
av chille
Jo, men de där algoritmerna är ju jobbiga, så de beskriver man inte i pseudokod.

Ta en titt här, finns en hel del algoritmer.

Allt är ju bara matematiska formler., så det behövs ingen pseudo-kod.

Postat: 9 augusti 2006, 13:19:23
av Mackan
Jag gjorde ett liknande program i BC-Builder för några år sedan och då använde jag de färdiga funktionerna som finns för att hantera charts. Det blev väldigt bra resultat och mycket likt excel grafer. Dessutom finns det trevliga funktioner för att hantera 3d-grafer och tex.animerade zoom-funktioner. Jag gjorde ett litet oscilloscop-hack som samlade värden via en ad som jag anslöt på parallellporten.

/Markus