IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Avatar
Jan Procházka:12.7.2018 18:17

Jakou knihovnu a jak použít pro tvorbu 2D "grafu" pro znázornění prostorového rozložení bodů v rovině?

Jak vytvořit body na daných souřadnicích a přiřadit jim popisky?
Jak s těmito popisky aktivně pracovat - zjistit, na který (blízké okolí) je kliknuto a upravit jeho vzhled?

Zkusil jsem: V MATLABu bych to vyřešil snadno (,protože MATLAB.written­lines.length >> C#.writtenlines­.lentgh):

Points=[0 0;0 1;1 0]; %// Vytvoreni matice. radky oddelene ";" - souradnice ii-teho bodu. sloupce oddelene " " - x y souradnice.

line('xdata',Points(:,1),'ydata',Points(:,2),'marker','o','linestyle','none'); %// Vykresleni jednotlivych bodu. Points(:,1) vrati cely prvni sloupec matice. Dale se nastavi kolecko, jako znacka a smaze se cara mezi body

for ii=size(Points,1):-1:1 %// for cyklus s inkrementem -1 od 1 do poctu radek matice Points (1. rozmer matice)
  Texty=text(Points(ii,1),Points(ii,2),num2str(ii)); % vytvori textove pole s levym dolnim rohem na pozici x=Points(ii,1), y=Points(ii,2) a naplni tam cislo ii.
end %// ukoncovaci fraze bloku

Pozn.:
MATLAB používá dynamické typování a dynamicky mění i velikost matic (polí).
Jako čítač je vhodné používat ii, protože i a j jsou nativně konstanty imaginární jednotky a jiné použití je tiše přetypuje na (neimaginární) double.
MATLAB indexuje prvky "neprogramátorsky" od 1 do N, narozdíl od "programátorského" indexování od 0 do N-1.
for cyklus NEPROBÍHÁ přes indexy od - do s nějakou změnou, ale přes všechny prvky zadané matice. for 5:-1:1 je zkrácený zápis indexy=[5,4,3,2,1];for indexy a ekvivalent for(int ii=5,--ii,ii>=1){.
end je jediná možná ukončovací fráze bloku. Musí tedy ukončit i jednopříkazový blok.
"%" uvozuje jednořádkovou poznámku.

Chci docílit: Jak dosáhnout podobného efektu a funkčnosti?

Cílem je vytvořit ve WPF okně souřadný systém (ekvivalent MATLABovskému objektu axes) ve kterém bych mohl vykreslovat jednotlivé body na daných souřadnicích s nějakým textem a pracovat s nimi (přes callbacky).

ii-tému bodu se dá upravit leccos.

set(Texty(3),'fontweight','bold','color','red');
get(Texty(3),'xdata')

První nastaví třetímu popisku tučné písmo a obarví jej načerveno. Druhý příkaz vypíše do konzole x-ovo souřadnici téhož pole.

Editováno 12.7.2018 18:19
 
Odpovědět
12.7.2018 18:17
Avatar
Odpovídá na Jan Procházka
Luboš Běhounek Satik:12.7.2018 19:24

Kreslit v C# můžeš třeba do Bitmapy přes pixely, případně přes třídu Graphics, která toho nabízí o něco víc.
Pokud to chceš i zobrazovat, tak třeba přes třídu Canvas.

Nahoru Odpovědět
12.7.2018 19:24
https://www.facebook.com/peasantsandcastles/
Avatar
René Češka:16.7.2018 13:56

Pokud hledáš knihovnu na grafy tak wpf toolkit obsahuje grafy ale jsou celkem pomalé, liveCharts jsou hodně pěkné grafy ale nemám s nimi žádnou zkušenost.

Akceptované řešení
+20 Zkušeností
+2,50 Kč
Řešení problému
 
Nahoru Odpovědět
16.7.2018 13:56
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 3 zpráv z 3.