Теми рефератів
> Реферати > Курсові роботи > Звіти з практики > Курсові проекти > Питання та відповіді > Ессе > Доклади > Учбові матеріали > Контрольні роботи > Методички > Лекції > Твори > Підручники > Статті Контакти
Реферати, твори, дипломи, практика » Курсовые обзорные » Програмування в Pascal. Моделювання 3D-об'єктів

Реферат Програмування в Pascal. Моделювання 3D-об'єктів





вера} tet: array [1 .. 4] of d3d =

((x: 50; y: 80; z: 50),

(x: 50; y: 0; z: 80),

(x: 100; y: 0; z: 0),

(x: 0; y: 0; z: 0)); cub: array [1 .. 8] of d3d =

((x: -50; y: -50; z: 50),

(x: -50; y: 50; z: 50),

(x: 50; y: 50; z: 50),

(x: 50; y: -50; z: 50),

(x: -50; y: -50; z: -50),

(x: -50; y: 50; z: -50),

(x: 50; y: 50; z: -50),

(x: 50; y: -50; z: -50)

); cyl: array [0 .. 21] of d3d;

{перевірка грані на видимість} {a, b, c-координати грані} TestGran (a, b, c: d3d): boolean; v1, w2, v2, w1, n: real; {внутрішні змінні для побудови нормалі до грані}

{побудова нормалі}: = ax-cx;: = ay-cy;: = bx-cx;: = by-cy;: = v1 * w2-v2 * w1; {перевірка видимості} n> 0 then: = true {грань видна}: = false; {грань не відображається};

{процедура малювання граней} {p1, p2, p3 - координати грані}

{col - колір межі} DrawGran (p1, p2, p3, p4: d3d; col: byte);: array [1 .. 4] of pointtype; {внутрішній тип для заливки грані заданим кольором} TestGran (p1, p2, p3) = false then exit; (1, col); {визначення типу заповнення}

{обробка внутрішніх змінні для заповнення and (zar [1]. y = zar [4]. y) fillpoly (3, zar) fillpoly (4, zar); {заповнити грань заданим кольором} (6, 1); {визначення типу заповнення};

{процедура малювання вектора} DrawVector; i: integer; figura = 1 then (tet [1], tet [2], tet [3], tet [1], 1); (tet [1], tet [ 3], tet [4], tet [1], 2); (tet [1], tet [4], tet [2], tet [1], 3); (tet [4], tet [3] , tet [2], tet [4], 4);; figura = 2 then (cub [4], cub [3], cub [2], cub [1], 11); (cub [5], cub [6], cub [7], cub [8], 12); (cub [1], cub [2], cub [6], cub [5], 13); (cub [3], cub [4 ], cub [8], cub [7], 14); (cub [2], cub [3], cub [7], cub [6], 15); (cub [5], cub [8], cub [4], cub [1], 16);; figura = 3 theni: = 1 to 9 do (cyl [0], cyl [i], cyl [i +1], cyl [0], i +7 ); (cyl [21], cyl [10 + i +1], cyl [10 + i], cyl [21], i +7); (cyl [10 + i], cyl [10 + i +1] , cyl [i +1], cyl [i], i +7);;;;

{процедура повороту точки в тривимірному просторі}

{xv, yv, zv - кути повороту точки в градусах}

{x, y, z - точка, яку потрібно повернути} rotate (xv, yv, zv: real; var x, y, z: real); Yt, Xt, Zt: real; {тимчасові змінні}

{повернути по осі y}: = Y * cos ((xv * rad))-Z * sin ((xv * rad));: = Y * sin ((xv * rad)) + Z * cos ( (xv * rad));: = Yt; Z: = Zt;

{повернути по осі x}: = X * cos ((yv * rad))-Z * sin ((yv * rad));: = X * sin ((yv * rad)) + Z * cos ( (yv * rad));: = Xt; Z: = Zt;

{повернути по осі z}: = X * cos ((zv * rad))-Y * sin ((zv * rad));: = X * sin ((zv * rad)) + Y * cos ( (zv * rad));: = Xt; Y: = Yt;; RotateAll; j: = 1 to 4 do rotate (a1, a2, a3, tet [j]. x, tet [j]. y, tet [ j]. z); j: = 1 to 8 do rotate (a1, a2, a3, cub [j]. x, cub [j]. y, cub [j]. z); j: = 0 to 21 do rotate (a1, a2, a3, cyl [j]. x, cyl [j]. y, cyl [j]. z);;: = Detect; {ініці...


Назад | сторінка 15 з 16 | Наступна сторінка





Схожі реферати:

  • Реферат на тему: PR і маркетинг: грані взаємодії
  • Реферат на тему: «Хованщина» М. П. Мусоргського. Грані образу святий руси
  • Реферат на тему: Людина і світ дикої природи: грані взаємодії
  • Реферат на тему: Парламент і органи судової влади Республіки Білорусь: грані взаємодії
  • Реферат на тему: Чи легко повернути (зарахувати) переплату за податками?