Diskuze: C# WPF, Porovnávání
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
Zobrazeno 7 zpráv z 7.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
Pole? Nejdřív dát data do pole (polí), ty se můžou snadno porovnat. A podle pole, vytvořit obrázek průběhem...
Přesně jak se píše v předešlé odpovědi - časový diagram tvoříš z
nějakých dat (hodnot) - tak porovnávej ty a ne čáry z nich vzešlé.
Nejlépe vzorkováním - zjišťováním hodnot v jednotlivých průbězích v
daném časovém intervalu.
Dříve jsem zkoušel něco takového:
private void Button_Click(object sender, RoutedEventArgs e) //Generace průbehů
{
lines = new List<line>();
double[] values = new double[200];
for (int i = 0; i < values.Length; i++)
values[i] = random.NextDouble() * 2 - 1; //Generování náhodných hodnot
const double height = 30;
double stepWidth = Plocha.ActualWidth / (double)(values.Length - 1);
double currX = 0;
double centerY = 130;
for (int i = 0; i < values.Length - 1; i++, currX += stepWidth)
{
lines.Add(new line(Plocha, (int)currX, (int)(centerY + (height * values[i])), (int)(currX + stepWidth), (int)(centerY + (height * values[i + 1]))));
}
}
Ale nedokázal jsem potom ten průběh usměrnit tak jak to mám bez toho pole a dělalo to tohle viz. obrázek.
Takže by mě stačilo, kdyby jste dokázali ty čáry nějak předělat aby
to dělalo jak na tom prvním obrázku.
Ta line je stejná jako v předešlém kódu.
jestli se nepletu tak černá čára je 0, nahoru to jde do plusu dolů k mínusu. Nevím co je pro tebe hranice, ale typuji, že je to ta nula. Tedy, každá hodnota nad nulou ať je jednička a každá pod nulou, nula. Jestli je to hodnota 0 - 255, tak "nulou", bude třeba hodnota 125. Jestli je hodnota 0 - 65536, tak "nulou" bude hodnota 32768. Atd. Obávám se, že se to snažíš vyřešit zbytečně složitě...
Nebo jsem nepochopil, o co se snažíš.
No nic tak asi zpět ke kódu z úvodu.
Co vlastně myslíš pojmem hodnota "0" a **hodnota "1" ** ?
Chceš ji někde zobrazovat, nebo někam ukládat, nebo s tím dál pracovat?
jinak :
**"1" **= prubehCara.Y1
**"0" **= prubehCara.Y2
tak kde je problém?
a co se týká porovnávání, tak to bylo myšleno tak, že si zřídíš nějakou kolekci "Line" a do ní uložíš "čáru" vytvořenou (poněkud netradičně) konstruktorem třídy line_S (což je podle mně špatný přístup - na to by třída měla mít metodu)
List<Line> listLines = new List<Line>();
// po vykresleni cary
listLines.Add(prubehCara); //to je ta tvoje nova cara
//no a pak muzes porovnavat -treba sirku pulsu:
if((listLines[0].X2 - listLines[0].X1)> (listLines[1].X2 - listLines[1].X1)
{
//neco
}
else
{
//neco jineho
}
Tou hodnotou "0" a "1" myslím jako to máš ve dvojkové soustavě, nebo-li true/false v boolean a pokud ti něco říká např. klopný obvod RS (časové průběhy), tak to míním nějak takhle a to konečné porovnávání bude zakresleno graficky časovým průběhem podle pravidel např. toho RS obvodu...jinak děkuji za radu, něco tam zkusím pošmelit
Zobrazeno 7 zpráv z 7.