Ik ben bezig geweest om netwerk verkeer om te zetten in een real-time grafiek.
De bedoeling is dat hij er op de volgende manier uit komt te zien (gewoon omdat dit een stuk netter is).

Ik ben nu tot de volgende oplossing gekomen:

Deze heb ik gemaakt door een zwarte cirkel te tekenen.
Hier overheen heb ik 3 arc's getekend (groen voor overloaded, geel voor severely overloaded en het rode stuk voor de maximal load).
Hier overheen weer een kleinere zwarte cirkel om alleen de rand van de arc's maar te laten zien.
Nu komt het.
De pijl van de current load teken ik nu door vanuit het middenpunt van de cirkel een arc van 5 breed naar de buitenkant te tekenen.
De bedoeling is nu dat deze pijl dynamisch precies de andere kant op komt te staan zodat hij in het midden dik begint en dun eindigt.
Ik heb het al met een gewone lijn geprobeerd, en ook met cos, sin en tan maar mijn wiskunde kennis is niet echt om naar huis te schrijven
Is er misschien een makkelijke/mooie manier om dit op te lossen?
Alvast bedankt!
De bedoeling is dat hij er op de volgende manier uit komt te zien (gewoon omdat dit een stuk netter is).

Ik ben nu tot de volgende oplossing gekomen:

Deze heb ik gemaakt door een zwarte cirkel te tekenen.
Hier overheen heb ik 3 arc's getekend (groen voor overloaded, geel voor severely overloaded en het rode stuk voor de maximal load).
Hier overheen weer een kleinere zwarte cirkel om alleen de rand van de arc's maar te laten zien.
Nu komt het.
De pijl van de current load teken ik nu door vanuit het middenpunt van de cirkel een arc van 5 breed naar de buitenkant te tekenen.
Java:
1
2
3
4
5
6
7
8
9
| //Deze bepaal ik in een hoek van 270 omdat ik de onderkant van de cirkel niet gebruik private float oneTransaction = 270.0f / extractedData.getMaxLoad(); //De waarde van de current, waar de pijl heen moet. current = Math.round(-(extractedData.getTotalTransactions()*oneTransaction)-oneTransaction); //Het tekenen van de pijl en het kleine rondje in het midden. graphics.fillArc(10, 10, width-20, height-20, 225+current, 5); graphics.fillOval((width/2)-4, (height/2)-4, 8, 8); |
De bedoeling is nu dat deze pijl dynamisch precies de andere kant op komt te staan zodat hij in het midden dik begint en dun eindigt.
Ik heb het al met een gewone lijn geprobeerd, en ook met cos, sin en tan maar mijn wiskunde kennis is niet echt om naar huis te schrijven
Is er misschien een makkelijke/mooie manier om dit op te lossen?
Alvast bedankt!

