1. .
2. . .
3. (. 2).
4. ( ) .
5. ( ).
. 90.
(xd,yd,zd) (x0,y0,z0).
xd yd. :
,
, zd=d.
:
.
, :
.
d. .
8. .
, , . . . :
1. ;
2. ;
3. .
, , , 900.
. , , . , , : , , .
:
1. () , .
2. .
3. , , .
4. .
|
|
, .
() .
.
. .
, - , . , , . , . .
. , X Y0Z :
.
Y0Z, .
X :
.
Y
.
Z
.
, , : . , , , , .
. , , , , , , - . .
9. (x 0, y 0) (x 1, y 1), , , . , , x 1 − x 0 y 1 − y 0, .. 45. , x x 0 x 1, , y , (x, y).
:
x, y :
, . , y y 0 x y
. , : y, 1.
, , y y x. , x, s, . 0.5, y, y , 1. , , plot(x,y) , abs :
|
|
, , error deltaerr, . , . , . , deltax. 0.5 2. :
function line(x0, x1, y0, y1) int deltax:= abs(x1 - x0) int deltay:= abs(y1 - y0) int error:= 0 int deltaerr:= deltay int y:= y0 for x from x0 to x1 plot(x,y) error:= error + deltaerr if 2 * error >= deltax y:= y + 1 error:= error - deltax2 .
, - 1. . , .. ( 1 -1), x y, .
C++:
void drawLine(int x1, int y1, int x2, int y2){ int deltaX = abs(x2 - x1); int deltaY = abs(y2 - y1); int signX = x1 < x2? 1: -1; int signY = y1 < y2? 1: -1; int error = deltaX - deltaY; for (;;) { setPixel(x1, y1); if(x1 == x2 && y1 == y2) break; int error2 = error * 2; if(error2 > -deltaY) { error -= deltaY; x1 += signX; } if(error2 < deltaX) { error += deltaX; y1 += signY; } }}Java:
// "" 9 . ( ), - , .private int sign (int x) { return (x > 0)? 1: (x < 0)? -1: 0; // 0, (x) ; -1, x < 0 1, x > 0.} public void drawBresenhamLine (int xstart, int ystart, int xend, int yend, Graphics g) /** * xstart, ystart - ; * xend, yend - ; * "g.drawLine (x, y, x, y);" "setPixel (x, y);" * - g.fillRect (x, y, 1, 1); */{ int x, y, dx, dy, incx, incy, pdx, pdy, es, el, err; dx = xend - xstart;// dy = yend - ystart;// incx = sign(dx); /* * , . dx < 0, .. * , incx -1. * . */ incy = sign(dy); /* * . - * y ( - ). */ if (dx < 0) dx = -dx;// : "if (dx < dy)" if (dy < 0) dy = -dy;// dx = |dx|; dy = |dy| // : dx = Math.abs(dx); dy = Math.abs(dy); if (dx > dy) // : { /* * dx > dy, "" , .. , . * ( el = dx;), "" * , (pdx = incx;), * y . */ pdx = incx; pdy = 0; es = dy; el = dx; } else//, "", , .. y { pdx = 0; pdy = incy; es = dx; el = dy;// y } x = xstart; y = ystart; err = el/2; g.drawLine (x, y, x, y);// // , for (int t = 0; t < el; t++)// , { err -= es; if (err < 0) { err += el; x += incx;// ( , ) y += incy;// -, y } else { x += pdx;// , .. , y += pdy;// ; , y } g.drawLine (x, y, x, y); }}
|
|
10. , , .
, , , . , , . .
Kam Torus
Kam Torus - 1- , , , . Kam Torus , , . , :
x(0) = y(0) = orbit / 3
x(n+1) = x(n)*cos(a) + (x2 - y(n))*sin(a)
y(n+1) = x(n)*sin(a) + (x2 - y(n))*cos(a)
orbit . , , ( ), orbit, , .
( ) , DrawKamTorus(), , .
Kam Torus, ( ) . . . C, ( a + (b * i)). Z . x, y, i ( ). , Z(n+1) = Z(n)^2 + C Z (0,,n).
, . C, - (.. ) .
, , "". , , .
, : () () . , , .
, , , - . , - C, . , - Z. , Z = 0 :
Z(n) = plot
Z(n+1) = Z^2 + C
Z(n+1) = Z(n)^2 + C. "". .
|
|