Goedennacht,
Ik ben momenteel bezich met een project voor mijn opleiding. We hebben de opdracht gekregen om het verkeer in een binnenstad van een Nederlandse stad te simuleren.
Nu hebben we ervoor gekozen om dit in matlab te programmeren, omdat we veel met vectors werken en matlab daar vrij vlot mee is.
Nu is het ook de bedoeling dat we het wegennetwerk weer geven en daarop de auto's die eroverheen rijden. Ongeveer 60% van de tijd die het programma nodig heeft gaat in het weergeven van de wegen en auto's zitten, terwijl de wegen en voertuigen enkel lijnen zijn met een ander kleurtje. We kunnen het natuurlijk 1 keer per 10 interaties laten plotten, maar dat is niet de oplossing die we zoeken.
Nu hebben we uiteraard bedacht dat het wegenstelsel maar één keer geplot hoeft te worden, maar iedere keer dat we de auto's plotten, moeten we het hele venster verversen, want anders verplaatsen de auto's zich niet, maar krijg je een lange lijn op de plaatsen waar de auto's zijn geweest.
De vraag:
Is het mogelijk om een plot te maken, die (eventueel tijdelijk) op te slaan en deze weer te geven zonder iedere keer iedere weg apart opnieuw te plotten?
We hebben tot nu toe het volgende geprobeerd:
1. Het wegennetwerk plotten, de plot exporteren als png en de png gebruiken als background terwijl we de auto's er transparant overheen plotten.
Dit was veelbelovend, maar ik ben tegen een aantal rare problemen opgelopen... Zo draaide hij opeens de Y as om zodra ik het png bestand ging gebruiken, rektte hij het png bestand niet goed uit tot de grootte van het venster en kwam er om het wegennetwerk een witte rand te staan die niet bij de plot hoorde.
Als iemand weet hoe we een plot op kunnen slaan en weer weer kunnen geven, deze oplossing heeft onze voorkeur
2. OpenGL gebruiken voor de plots, zodat het sneller gaat.
Maar dit leverde geen opzienbarende snelheidsverbetering op
3. Parallel de auto's en wegen plotten
Ook deze aanpak leverde weinig resultaat op, het scheelde slechts een paar procenten. Terwijl mijn cpu belasting niet boven de 15% stijgt en per core komt hij niet hoger dan 70% (quadcore met hyperthreading).
Ik hoop dat iemand ons kan helpen!
Ik ben momenteel bezich met een project voor mijn opleiding. We hebben de opdracht gekregen om het verkeer in een binnenstad van een Nederlandse stad te simuleren.
Nu hebben we ervoor gekozen om dit in matlab te programmeren, omdat we veel met vectors werken en matlab daar vrij vlot mee is.
Nu is het ook de bedoeling dat we het wegennetwerk weer geven en daarop de auto's die eroverheen rijden. Ongeveer 60% van de tijd die het programma nodig heeft gaat in het weergeven van de wegen en auto's zitten, terwijl de wegen en voertuigen enkel lijnen zijn met een ander kleurtje. We kunnen het natuurlijk 1 keer per 10 interaties laten plotten, maar dat is niet de oplossing die we zoeken.
Nu hebben we uiteraard bedacht dat het wegenstelsel maar één keer geplot hoeft te worden, maar iedere keer dat we de auto's plotten, moeten we het hele venster verversen, want anders verplaatsen de auto's zich niet, maar krijg je een lange lijn op de plaatsen waar de auto's zijn geweest.
De vraag:
Is het mogelijk om een plot te maken, die (eventueel tijdelijk) op te slaan en deze weer te geven zonder iedere keer iedere weg apart opnieuw te plotten?
We hebben tot nu toe het volgende geprobeerd:
1. Het wegennetwerk plotten, de plot exporteren als png en de png gebruiken als background terwijl we de auto's er transparant overheen plotten.
Dit was veelbelovend, maar ik ben tegen een aantal rare problemen opgelopen... Zo draaide hij opeens de Y as om zodra ik het png bestand ging gebruiken, rektte hij het png bestand niet goed uit tot de grootte van het venster en kwam er om het wegennetwerk een witte rand te staan die niet bij de plot hoorde.
Als iemand weet hoe we een plot op kunnen slaan en weer weer kunnen geven, deze oplossing heeft onze voorkeur

2. OpenGL gebruiken voor de plots, zodat het sneller gaat.
Maar dit leverde geen opzienbarende snelheidsverbetering op
3. Parallel de auto's en wegen plotten
Ook deze aanpak leverde weinig resultaat op, het scheelde slechts een paar procenten. Terwijl mijn cpu belasting niet boven de 15% stijgt en per core komt hij niet hoger dan 70% (quadcore met hyperthreading).
Ik hoop dat iemand ons kan helpen!

[Voor 1% gewijzigd door .oisyn op 20-04-2017 12:45]