(495) 240-82-80ПН-СБ с 10:00 до 18:00
We speak English

Урок 2.1. Рисование 3D куба

Совет: Экран графического калькулятора HP Prime имеет размер 318 пикселей в ширину и 240 пикселей в высоту. Если вы хотите оставить место для пользовательских меню, то размер уменьшится до 318 пикселей на 218 пикселей. Значения по оси x увеличиваются в правую сторону, но в отличие от декартовой координатной плоскости, значения по оси y возрастают в сторону нижней части, а не верхней.

Рисование 3D куба

Нарисовать 3D куб не так просто, как может показаться с первого взгляда.

EXPORT DRAW3DCUBE()
BEGIN
  LOCAL t, a, b, c, d, s;
  RECT();
  // координаты
  a := 159-50*COS(45°);
  b := 109-50*SIN(45°);
  c := 159+50*COS(45°) + 1;
  d := 159-50*SIN(45°);

  // рисование
  LINE_P(a+50*COS(45°), b-SIN(45°), a, b);
  LINE_P(a, b, 159, 109);
  LINE_P(159, 109, c, b);
  LINE_P(c, b, a+50*COS(45°), b-SIN(45°));

  LINE_P(a, b, a, d);
  LINE_P(a, d, 159, 159);
  LINE_P(159, 159, 159, 109);

  LINE_P(159, 159, c, d);
  LINE_P(c, d, c, b);

  // цвет для левой/правой стороны
  FOR t FROM b TO d DO
    LINE_P(a, t, 159, t+50*SIN(45°), #FF0000h);
    LINE_P(c, t, 159, t+50*SIN(45°), #FFh);
  END;

  // цвет верхнего блока
  FOR t FROM 1 TO 50 DO
    LINE_P(a+t*COS(45°), b-t*SIN(45°),
    a+t*COS(45°), b+t*SIN(45°), #FFFF00h);
END;

  FOR t FROM 50 DOWNTO 1 DO
    LINE_P(c-t*COS(45°), b-t*SIN(45°),
    c-t*COS(45°), b+t*SIN(45°), #FFFF00h);
  END;

  WAIT(0);   // Я предпочитаю использовать WAIT(0) для ПАУЗЫ;

END;