Losowanie punktów po obwodzie trójkąta

0

Witam,
potrzebuję wylosować punkty z niewielkiego przedziału, których połączenie da mi kontury różnych figur. Kwadrat czy okrąg były łatwe ale jak wylosować punkty tworzące obwód trójkąta? Korzystam z klasy Point2D.

Z góry dziękuję za pomoc,
Agata

1

Trójkąt składa się z 3 odcinków - losuj punkty na tych odcinkach.

0

"punkty tworzące obwód trójkąta" - czy chodzi o wierzchołki? Jeśli tak, to w sumie tak samo jak w przypadku kwadratu, tylko o jeden mniej, albo jak w przypadku koła, tyle, że o trzy więcej... **EDIT **TFU! o dwa więcej :)

0

Dziękuję za szybką odpowiedź. Nie chodzi o wierzchołki ale o całe boki. Powiedzmy ok 20 punktów które z niewielkim błędem tworzą boki dowolnego trójkąta. Tak, żeby było widać, że to trójkąt :p

2

Rozwiązanie proste:

  • wyznacz wektory odpowiadające za boki (co jest trywialne jeśli znasz współrzędne wierzchołków).
  • przesuwaj wierzchołki o losowy ułamek przemnożony przez wektor dla danego boku
    Jeśli więc masz wierzchołki (0,0), (0,1), (1,1) to masz np. wektor pomiędzy (0,0) i (0,1) -> [0, 1]
    Więc teraz bierzesz punkt (0,0) i przesuwasz o uniform.random()*wektor
0

Dzięki wielkie,
w końcu zrobiłam to trochę inaczej ale bez wskazówki Shaloma nie dałabym sobie rady :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1