RipTor
Legacy Member
Mensen ik heb even een vraagstuk meetkunde. Vroeger had ik het waarschijnlijk zelf kunnen oplossen maar tegenwoordig 
Ik wil een plugin maken voor de game rFactor (racesim) die het afsnijden van bochten logged.
Een rFactor circuit bestaat uit veel kleine korte rechte stukjes. Deze worden allemaal opgegeven door een begin- en eind-coördinaat.
Daarnaast heeft ieder punt een afstand naar links en naar rechts die opgeeft hoe breed de baan is (waar de witte lijnen liggen).
Een voorbeeld van een oversimplistische bocht :
De coördinaten van punten 1, 2, 3 en 4 zijn dus gekend. De rode lijnen moet de code berekenen en liggen in een hoek van 90° op de eindpunten van de zwarte lijnen. Het is ook gekend hoeveel de rode lijn links van de zwarte lijn komen, en hoeveel eenheden rechts (maar je moet dus rekening houden dat de rode lijnen niet altijd perfect horizontaal lopen dus ge kunt niet gewoon dat aantal van X aftekken).
Hoe kunt ge de coordinaten van de rode lijnen berekenen ?
Stel dat de coordinaten van de zwarte punten de volgende zijn:
1: 0, 0
2: 0, 2
3: 1, 3
4: 3, 3
En de gegevens van de rode lijnen :
2: Links: 1 ; Rechts 2
3: Links: 1 ; Rechts 2
Een wiskundige oplossing is ok of een Java oplossing nog beter
(mogelijks zitten de nodige functies in graphics2D hiervoor maar ik zie ze niet direct).
Indien het een Java oplossing is graag een functie in deze vorm :
public Line2D.Double berekenCpLine(Line2D circuitLijn, float leftDistance, float rightDistance)

Ik wil een plugin maken voor de game rFactor (racesim) die het afsnijden van bochten logged.
Een rFactor circuit bestaat uit veel kleine korte rechte stukjes. Deze worden allemaal opgegeven door een begin- en eind-coördinaat.
Daarnaast heeft ieder punt een afstand naar links en naar rechts die opgeeft hoe breed de baan is (waar de witte lijnen liggen).
Een voorbeeld van een oversimplistische bocht :
De coördinaten van punten 1, 2, 3 en 4 zijn dus gekend. De rode lijnen moet de code berekenen en liggen in een hoek van 90° op de eindpunten van de zwarte lijnen. Het is ook gekend hoeveel de rode lijn links van de zwarte lijn komen, en hoeveel eenheden rechts (maar je moet dus rekening houden dat de rode lijnen niet altijd perfect horizontaal lopen dus ge kunt niet gewoon dat aantal van X aftekken).
Hoe kunt ge de coordinaten van de rode lijnen berekenen ?
Stel dat de coordinaten van de zwarte punten de volgende zijn:
1: 0, 0
2: 0, 2
3: 1, 3
4: 3, 3
En de gegevens van de rode lijnen :
2: Links: 1 ; Rechts 2
3: Links: 1 ; Rechts 2
Een wiskundige oplossing is ok of een Java oplossing nog beter
(mogelijks zitten de nodige functies in graphics2D hiervoor maar ik zie ze niet direct).Indien het een Java oplossing is graag een functie in deze vorm :
public Line2D.Double berekenCpLine(Line2D circuitLijn, float leftDistance, float rightDistance)