Aha ok. Mój problem polega na tym, że chcę napisać funkcję, która będzie badać, czy może zagłębić się w dany fragment wykresu. Jak np. fragment jest zbyt "wąski" i kopia wykresu się nie zmieści, to rysuje prostą poniżej zagłębienia. Ale mam problem i od kilku dni jestem w kropce. A może po prostu badać ilość przecięć wykresu z nim samym i jak jest powyżej 1 w danym fragmencie, to obcinać ten fragment?
Dodano po 1 godzinie 43 minutach 4 sekundach:
Jakbym np. miał łamaną na zasadzie:
I przerwa między pionowymi partiami byłaby zbyt wąska, to jak odtworzyć ostatni poprawny fragment wykresu i ominąć niepoprawny, tj:
Dodano po 14 godzinach 57 minutach 42 sekundach:
OK. Mam kod funkcji, która znajduje punkty. Tylko problem z odpowiednim dobraniem odległości (czasem musi być + a czasem -)
Kod: Zaznacz cały
function findNextPoint(pA1, pA2, pB1, pB2, shift) {
var line1 = setLineFrom2Points(getPointX(pA1), getPointY(pA1), getPointX(pA2), getPointY(pA2));
var line2 = setLineFrom2Points(getPointX(pB1), getPointY(pB1), getPointX(pB2), getPointY(pB2));
var p = getCommonLineCrossPoint(line1, line2);
// dostosować shifty
var line1_0 = getLine0(line1, p, shift);
var line2_0 = getLine0(line2, p, shift);
return getCommonLineCrossPoint(line1_0, line2_0);
}
Teraz muszę uściślić, kiedy
\(\displaystyle{ shift}\) ma być z + a kiedy -, na podstawie linii lub punktów. Pomożecie?
Kod: Zaznacz cały
function test() {
var A1 = setPoint(10, 10);
var A2 = setPoint(20, 10);
var B1 = setPoint(20, 10);
var B2 = setPoint(20, 20);
console.log(findNextPoint(A1, A2, B1, B2, 5));
}
To daje w wyniku:
A powinno: