zaznaczanie kształtów (linii)

0

Witam. Mam takie zapytanie. Np mam takie cos.

GraphicsPath linia = new GraphicsPath();
linia.AddLine(p1,p2);

Teraz:

if (linia.IsOutlineVisible(e.Location, new Pen(Color.Black)))

Dzięki temu, bądź też przez to bede wiedział że np kursor jest nad obiektem gdy bedzie dokładnie NA linii. Co zrobić żeby dodać mu jakąś tolerację powiedzmy 2 pixele w każdą stronę (niezależnie od kąta narysowanej linii). Da sie coś takiego zrobić ??. Bo troche mnie to męczy takie dokladne naprowadzanie kursora na linie żeby ją zaznaczyć. Pozdrawiam

0

standardowo NET nie przewiduje czegoś takiego, ale możesz tworzyć dwie ścieżki - jedną, tą którą będziesz rysował, piórem, np 1 a drugą, tą którą będziesz sprawdzał, piórem +4 pixele ale z takimi samymi współrzędnymi jak pierwsza. Wtedy możesz sprawdzać czy mysz jest 'w obszarze' tej drugiej ścieżki, która jest grubsza i 'udaje' tolerancję

0

anu :) ... zobacz ty takie proste rozwiązanie a ja chciałem tworzyć jakieś funkcje :). Wielkie dzieki to ułatwi mi roboty.

0

Teraz coś w kwestii kontynuacji problemu. Skoro mogę sobie swobodnie zaznaczać obiekty to teraz jak zrobić takie cudo:

Załóżmy że mam sobie obiekty typu polygon. Wiadomo o jaki obiekt chodzi. Teraz chcę zrobić coś takiego że gdy najeżdżam na linie (to juz mam obadane) to chcę żeby dokładnie NA TEJ linii w tym pkt (mniej wiecej gdzie wskazuje kursor) umieścić punkt. Żeby postawić Pointa to zaden problem. Ale problem jest tej kwestii:

np jak obiekt składa się z 4 punktów to jak sprawdzić między którymi punktami znajduje się ten ... wetkniety (nowy) :). Na początku myślałem żeby obliczyć odległość pomiędzy kazdym z już istniejących punktów a tym nowym utworzonym. Ale to nie jest dobre rozwiązanie po dłuższym zastanowieniu. Może jakieś sugestie ??. Pozdrawiam

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