Diskuze: Komponenta pro vykreslení "diagramu"
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.


Zobrazeno 13 zpráv z 13.
K personalizaci obsahu a reklam, poskytování funkcí sociálních médií a analýze naší návštěvnosti využíváme soubory cookie. Informace o tom, jak náš web používáte, sdílíme se svými partnery pro sociální média, inzerci a analýzy. Partneři tyto údaje mohou zkombinovat s dalšími informacemi, které jste jim poskytli nebo které získali v důsledku toho, že používáte jejich služby.
Používáme nezbytné cookies pro fungování webu a s tvým souhlasem také analytické a marketingové cookies.
Zajišťují základní funkce, bezpečnost a služby, které sis vyžádal. Nelze je vypnout.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| ITnetwork | ITnetwork | Provoz webu, relace, přihlášení a uložení nastavení cookies. | PHPSESSID, auth_token, sid, itn_consent_impression, __Host-itn_consent | Relace až 1 rok |
| Google Tag Manager | Správa značek a načítání měřicích nástrojů webu. | Žádné | Neukládá se | |
| Google Fonts | Načítání typografie webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google Hosted Libraries | Načítání potřebných knihoven a stylů webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google reCAPTCHA | Ochrana formulářů a webu před zneužitím. | _GRECAPTCHA, rc::a, rc::b, rc::c, rc::f | Relace až 180 dní | |
| YouTube | Přehrávání vloženého video obsahu. | localStorage, IndexedDB; cookies after playback interaction | Relace až trvalé úložiště | |
| Vimeo | Vimeo | Přehrávání vloženého video obsahu. | __cf_bm, _cfuvid, vuid, localStorage, IndexedDB | Relace až 2 roky |
| Facebook Login | Meta | Přihlášení pomocí účtu třetí strany. | Úložiště řízené poskytovatelem | Relace až 1 rok |
| GoPay | GoPay | Zpracování uživatelem vyžádané platby. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
Pomáhají nám porozumět používání webu a zlepšovat ho.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Analytics 4 | Měření návštěvnosti a používání webu. | _ga, _ga_* | Až 2 roky | |
| Microsoft Clarity | Microsoft | Měření návštěvnosti a používání webu. | _clck, _clsk, _cltk | Relace až 1 rok |
Slouží k měření kampaní, personalizaci reklamy a marketingové komunikaci.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Ads | Měření kampaní, reklama a remarketing. | _gcl_au, _gcl_ls | Relace až 90 dní | |
| Meta Pixel | Meta | Měření kampaní, reklama a remarketing. | _fbp, _fbc, localStorage | Až 90 dní |
| Sklik | Seznam.cz | Měření kampaní, reklama a remarketing. | retargeting, sid, szn:* | Relace až trvalé úložiště |
| LinkedIn Insight | Měření kampaní, reklama a remarketing. | bcookie, li_gc, lidc, __cf_bm | Relace až 1 rok | |
| Ecomail | Ecomail.cz | Měření kampaní, reklama a remarketing. | ecmid, Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
| Atribuce kampaní ITnetwork | ITnetwork | Přiřazení návštěvy a objednávky ke kampani. | campaign_clid[*], user_session_context | Až 1 rok |
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.


No klasický graphics bych nato nepoužíval. Použil bych D3D. Objekty můžeš uchovávat asi normálně v nějaké kolekci, držet pozici, velikost a nějakou zoom konstantu, která se bude měnit.
Uchovávat celou bitmapu ... Nato .NET nevystačí s op. pamětí, takže bys i vždycky připravil bitmapu, která by reprezentovala to místo, na které se aktuálně díváš a ptal se všech objektů, zda jsou viditelná, když je vynásobíš tou zoom konstantou. Pak bys je jednoduše vykreslil.
Btw 65536(šířka) * 65536(výška) * 32(barva) = ... = 16777216KB = 16384 MB = 1,6GB ... Při tom, že .NET VM povoluje max 2GB.
Ještě jsem zapomněl dodat, že by se mělo jednat o WPF aplikaci.
Uchovával bych to v kolekci a jak píšeš pozice a zoom by se měnily.
Mohlo by to být vizuálně něco podobného jako na tomto obrázku:
http://www.genopro.com/…arriages.png
Jen teoreticky ... Proč být omezený velikostí ? Takové rozlišení stejně nikdy nerozbrazíš, byl bys rád v dnešní době za 4k, což je myslím už tak dost. Jsou to jednoduché objekty, takže by to neměl být problém. Omezil bych se maximálně na zoom a pak si vlastně omezený dost. Kdyžtak se ti můžu poptat, kámoš vykresloval 3D grafy pomocí D3D a zvládal vpohodě osy, které měly interval <-109; 109>. Sice to byly jen jednoduché čáry, ale to je v tvém případě taky.
No ve WPFku začínám, takže nevím čeho je schopno a jestli by to
zvládlo, ale vzhledem k tomu, že to akceleruje grafika, tak by mohlo 
Vykresluj jen ten výřez, co potřebuješ vidět, a stačí ti pár MB, je zbytečné zabírat 16 GB paměti, a mít tam uložený celý obrázek.
Tak to by bylo krásný, ještě to mít jako komponentu použitelnou ve WPF aplikaci. To jsem na tom webu nenašel...
Myslím, že není potřeba připravovat si celý obraz, stačil by mi výřez např. 20x20 bodu z té plochy. Jde mi ale o to, že než otestuju viditelnost v té ploše třeba 20000 objektů, tak pokud to budu dělat ve vlastní režii, mám strach, že to bude pomalé, proto se ptám na zkušenosti s něčím podobným...
Spočítat viditelnost 20 000 objektů je naprosto v pohodě.
Díky za rady, zkusil jsem si udělat pár pokusů, skutečně testovat
viditelnost 100000 objektů v kolekci je v pohodě. Dělit není třeba na
menší oblasti.
Uvažoval jsem, že bych použil komponentu odvozenou od ScrollView, které bych
nastavil onu plochu 65536 x 65536 bodu a na ní vykreslil jen ty objekty
diagramu, které jsou viditelné.
Dalo by se to využít takovým způsobem? A nebo uvažuju úplně špatně a je
třeba si na to napsat od píky vlastní UserControl?
Nevím jak funguje ScrollView, ale je zbytečné uchovávat v paměti takové množství dat. Vždyť jsme ti i řekli, kolik by to zabíralo paměti...
Asi jsem to špatně napsal - nepotřebuju uchovávat v paměti vše jako bitmapu. potřebuju jen plochu, kde bude umístěno řádově desítky tisíc objektů, nad výřezem plochy se budu pohybovat a chtěl bych dynamicky zobrazit jen řádově desítky, možná stovky objektů (komponent), které jsou vidět.
Zobrazeno 13 zpráv z 13.