Hey erstmal!
ich arbeite an einer applikation, die die position von funktranspondern anzeigt. sprich jemand bekommt einen transponder umgeschnallt und meine anwendung stellt durch linien den weg da, den die entsprechende(n) person(en) zurücklegen.
die anzeige ist zomm/scroll und rotierbar.
je nachdem wie lange die applikation läuft, häufen sich natürlich die linien die gezeichnet werden müssen. im schnitt bewegt sich die anzahl derer bei ~600k - 800k und das pro transponder.
die momentane lösung ist, die linien (deren anfangs und endpunkt im einem vector gespeichert sind) auf ein transparentes buffered image zu zeichnen. pro transponder existiert ein eigenes bi. es werden immer nur die "neuen" linien gezeichnet, der rest bleibt erhalten. auf der niedrigesten zoomstufe verschiebe ich beim scrollen einfach entsprechend das BI (weil alle linien draufpassen). je weiter ich reinzoome umso größer müsste das BI werden um noch alle daten fassen zu können, was natürlich speichertechnisch ein horror wird und auch nicht mehr flüssig scrollbar ist.
weiters müsste ich beim ändern der zoomstufe die kompletten linien neu rendern, was nach ein paar minuten laufzeit einfach zu lange dauert.
meine frage jetzt also, wie kann ich das ding am effizientesten rendern, sodass zoom/scrolling und rotation (in 90° schritten) flüssig dargestellt werden kann? ich hänge diesbezüglich im moment ziemlich in der luft.
klar ist, dass ich immer nur die teile im speicher haben darf, die gerad tatsächlich angezeigt werden (bei 4bytes/pixel - bi mit alphachannel wohl kaum anders machbar).
wie ich das allerdings am besten mache ist mir im moment zumindest ein rätsel.
vllt schaffts von euch ja jemand mir diesbezüglich ein wenig auf die sprünge zu helfen.
MfG,
smuRf
ich arbeite an einer applikation, die die position von funktranspondern anzeigt. sprich jemand bekommt einen transponder umgeschnallt und meine anwendung stellt durch linien den weg da, den die entsprechende(n) person(en) zurücklegen.
die anzeige ist zomm/scroll und rotierbar.
je nachdem wie lange die applikation läuft, häufen sich natürlich die linien die gezeichnet werden müssen. im schnitt bewegt sich die anzahl derer bei ~600k - 800k und das pro transponder.
die momentane lösung ist, die linien (deren anfangs und endpunkt im einem vector gespeichert sind) auf ein transparentes buffered image zu zeichnen. pro transponder existiert ein eigenes bi. es werden immer nur die "neuen" linien gezeichnet, der rest bleibt erhalten. auf der niedrigesten zoomstufe verschiebe ich beim scrollen einfach entsprechend das BI (weil alle linien draufpassen). je weiter ich reinzoome umso größer müsste das BI werden um noch alle daten fassen zu können, was natürlich speichertechnisch ein horror wird und auch nicht mehr flüssig scrollbar ist.
weiters müsste ich beim ändern der zoomstufe die kompletten linien neu rendern, was nach ein paar minuten laufzeit einfach zu lange dauert.
meine frage jetzt also, wie kann ich das ding am effizientesten rendern, sodass zoom/scrolling und rotation (in 90° schritten) flüssig dargestellt werden kann? ich hänge diesbezüglich im moment ziemlich in der luft.
klar ist, dass ich immer nur die teile im speicher haben darf, die gerad tatsächlich angezeigt werden (bei 4bytes/pixel - bi mit alphachannel wohl kaum anders machbar).
wie ich das allerdings am besten mache ist mir im moment zumindest ein rätsel.
vllt schaffts von euch ja jemand mir diesbezüglich ein wenig auf die sprünge zu helfen.
MfG,
smuRf