Cytat(sowiq @ 28.02.2009, 00:07:57 )

Załóżmy, że nie chcesz prostej pionowej. Masz wzór y = ax + b. Skoro znasz współczynniki a i b (tak napisałeś wyżej), znasz x (szerokość viewport'u), to w czym problem?
na wikipedii jakies dziwne wzory znalazlem i nie potrafilem ich podstawic, ale juz mam

skorzystalem z tego materialu:
http://2000clicks.com/MathHelp/GeometryPointsAndLines.htm<?php
// A - punkt startowy, B - punkt przelotowy => zamieniony na koncowy
// Nachylenie [m] i przeciecie-y [b] - porzebne do wzoru: y = mx + b
var m = (B.y - A.y) / (B.x - A.x);
var b = A.y - m * A.x;
// Oblicz punkty przecięcia z 4 krawędziami okna przeglądarki, odpowiednio dla: x0=Lewa, x1=Prawa, y0=Gorna, y1=Dolna
var x0
= Math
.floor(m
* 0
+ b
); var x1
= Math
.floor(m
* window
.width
+ b
); var y0
= Math
.floor((0
- b
) / m
); var y1
= Math
.floor((window
.height
- b
) / m
);
// Punkt koncowy: Lewa krawedz?
if(x0 >= 0 && x0 <= window.height && A.x >= B.x) {
B.x = 0;
B.y = x0;
}
// Punkt koncowy: Prawa krawedz?
else if(x1 >= 0 && x1 <= window.height && A.x <= B.x) {
B.x = window.width;
B.y = x1;
}
// Punkt koncowy: Gorna krawedz?
else if(y0 >= 0 && y0 <= window.width && A.y >= B.y) {
B.x = y0;
B.y = 0;
}
// Punkt koncowy: Dolna krawedz?
else if(y1 >= 0 && y1 <= window.width && A.y <= B.y) {
B.x = y1;
B.y = window.height;
}
?>