Vehicle # position: float # curVelocity: float # maxVelocity: float # brakeProb: float # id: int # trackLength: float + timeElapse(): void - getPosition(): float - getCurVelocity(): float - getMaxVelocity(): float - updateVelocity(distanceForerunner: float): void - timeElapse(): void - Vehicle(id: id, position: int, maxVelocity: float, brakeProb: float, trackLength: float) Track # vehicles: List<Vehicle> # vtrList: List<List<VehicleTimeRecord>> # trackLength: float # sumAvgMemory: float # lastAvg: float + timeElapse(timestep: float): void # createVehiclesList(numberVehicles: int): List<Vehicle> - getVtrList(): List<List<VehicleTimeRecord>> - getTrackLength(): float - avg_step(step: int): float # update_avg(): void - Track(numberVehicles: int, trackLength: float) VehicleTimeRecord # id: int # position: float # velocity: float # maxVelocity: float - getMaxVelocity(): float - getPosition(): float - getVelocity(): float - VehicleTimeRecord(id: int, position: int, velocity: float, maxVelocity: float) TimeRecordView # paint: Paint # track: Track # pixelPerVehicle: int # getColor(curVelocity: float, maxVelocity: float): int # onMeasure(widthMeasureSpec: int, heightMeasureSpec: int): void # onSizeChanged(w: int, h: int, oldw: int, oldh: int): void # onDraw(canvas: Canvas): void View MainActivity # track: Track # trackView: TimeRecordView # worker: Worker # viewStack: LinearLayout # onCreate(savedInstanceState:Bundle): void - update(observable: Observable, o: Object): void - onStepButtonClick(view: View): void - onPlayButtonClick(view: View): void - onStopButtonClick(view: View): void Worker Thread Actor Blaaaaaa # forerunner <?xml version="1.0" encoding="UTF-8" standalone="no"?> <!-- Created with Inkscape (http://www.inkscape.org/) --> <svg xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://web.resource.org/cc/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" width="41" height="68.997391" id="svg2" sodipodi:version="0.32" inkscape:version="0.45.1" sodipodi:docbase="C:\Daten\alberts\projects\yfx" sodipodi:docname="uml_actor.svg" inkscape:output_extension="org.inkscape.output.svg.inkscape" version="1.0"> <defs id="defs4" /> <sodipodi:namedview id="base" pagecolor="#ffffff" bordercolor="#666666" borderopacity="1.0" inkscape:pageopacity="0.0" inkscape:pageshadow="2" inkscape:zoom="2.934351" inkscape:cx="144.21983" inkscape:cy="28.533711" inkscape:document-units="px" inkscape:current-layer="layer1" showgrid="true" inkscape:window-width="1280" inkscape:window-height="968" inkscape:window-x="-4" inkscape:window-y="-4" width="48px" height="48px" showborder="false" inkscape:showpageshadow="false" /> <metadata id="metadata7"> <rdf:RDF> <cc:Work rdf:about=""> <dc:format>image/svg+xml</dc:format> <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> </cc:Work> </rdf:RDF> </metadata> <g inkscape:label="Ebene 1" inkscape:groupmode="layer" id="layer1" transform="translate(-29.5,-42.959476)"> <a id="a3142" transform="matrix(1.0873906,0,0,1,-4.4741999,0)"> <path transform="translate(11.586889,5.2908993)" d="M 47.02914 47.36993 A 8.5197716 9.2013531 0 1 1 29.989597,47.36993 A 8.5197716 9.2013531 0 1 1 47.02914 47.36993 z" sodipodi:ry="9.2013531" sodipodi:rx="8.5197716" sodipodi:cy="47.36993" sodipodi:cx="38.509369" id="path2160" style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" sodipodi:type="arc" /> </a> <path sodipodi:type="arc" style="fill:none" id="path3134" sodipodi:cx="43.962021" sodipodi:cy="48.392303" sodipodi:rx="3.7486994" sodipodi:ry="0" d="M 47.71072 48.392303 A 3.7486994 0 0 1 1 40.213321,48.392303 A 3.7486994 0 0 1 1 47.71072 48.392303 z" /> <path style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1.24319649px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="M 50,61.33709 C 50,91.363211 50,92.247838 50,92.247838" id="path3136" /> <path style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="M 69.760668,72.362183 C 69.760668,72.362183 69.760668,72.362183 50.239332,72.362183 C 30.239332,72.362183 30.239332,72.362183 30.239332,72.362183 L 30.239332,72.362183" id="path3138" /> <path style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="M 30,111.45687 C 30,111.45687 30,111.45687 50,92.013532 C 70,111.45687 70,111.45687 70,111.45687" id="path3140" /> </g> </svg>