algorytm do wyznaczenia przecięcia punktu z odcinkiem potrzebuje , chce dopisać soft shadow do bump mappingu
EDIT; wpadłem na pomysł aby wykorzystać algorytm do rysowania odcinka i w miejscu putpixel zrobić po prostu warunek i to tyle ale jesli ktos ma lepszy pomysł chętnie wysłucham ...
bool LinePoint(const int x1, const int y1, const int x2, const int y2,int x3,int y3)
{
// zmienne pomocnicze
int d, dx, dy, ai, bi, xi, yi;
int x = x1, y = y1;
// ustalenie kierunku rysowania
if (x1 < x2)
{
xi = 1;
dx = x2 - x1;
}
else
{
xi = -1;
dx = x1 - x2;
}
// ustalenie kierunku rysowania
if (y1 < y2)
{
yi = 1;
dy = y2 - y1;
}
else
{
yi = -1;
dy = y1 - y2;
}
// pierwszy piksel
if(x==x3 && y==y3)
return true;
// oś wiodąca OX
if (dx > dy)
{
ai = (dy - dx) * 2;
bi = dy * 2;
d = bi - dx;
// pętla po kolejnych x
while (x != x2)
{
// test współczynnika
if (d >= 0)
{
x += xi;
y += yi;
d += ai;
}
else
{
d += bi;
x += xi;
}
if(x==x3 && y==y3)
return true;
}
}
// oś wiodąca OY
else
{
ai = ( dx - dy ) * 2;
bi = dx * 2;
d = bi - dy;
// pętla po kolejnych y
while (y != y2)
{
// test współczynnika
if (d >= 0)
{
x += xi;
y += yi;
d += ai;
}
else
{
d += bi;
y += yi;
}
if(x==x3 && y==y3)
return true;
}
}
return false;
}