![]() Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву ![]() Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Begin // будуємо грані куба (квадрати)Содержание книги
Поиск на нашем сайте
Edge4(A, B, C, D,N1,C_Red); // передня (front) Edge4(A1,D1,C1,B1,N2,C_Orange); // задня (back) Edge4(A, D, D1,A1,N3,C_Lemon); // права (right) Edge4(B,B1,C1,C, N4,C_Aqua); // ліва (left) Edge4(A, A1,B1,B, N5,C_Green); // верхня (top) Edge4(C, C1,D1,D, N6,C_Navy); // нижня (bottom) end; Викликається в кожному кадрі процедурою procedure Draw3D; begin DrawAxis; DrawSolidCube end; Правильні многранники взаємопов’язані, що можна використати для побудови наступних тіл Платона. З найбільш простої для побудови фігури – куба можна отримати тетраедр, провівши перехресні діагоналі на протилежних гранях куба (рис.6.2). Для виведення грані тетраедра (трикутника) з врахуванням нормалі і кольору процедура аналогічна Edge4 procedure Edge3(V1,V2,V3:V_Array; N:N_Array;Color:C_Array); begin glBegin (GL_TRIANGLES); glColor3fv(@Color); glNormal3fv(@N); glVertex3fv(@V1); glVertex3fv(@V2); glVertex3fv(@V3); glEnd end;
Рис.6.2. Тетраедр, вписаний в куб. Приклад 6.2. Процедура побудови тетраедра procedure DrawSolidTetrahedron; const q=0.577350269; {q=1/sqrt(3);} // вершини тетраедра // нормалі до граней A:V_Array=(1,1,-1); N1:N_Array=(q, q, q); B:V_Array=(1,-1,1); N2:N_Array=(-q,-q, q); C:V_Array=(-1,1,1); N3:N_Array=(q,-q,-q); D:V_Array=(-1,-1,-1); N4:N_Array=(-q, q,-q); Begin // будуємо грані тетраедра (прав.трикутники) Edge3(A, C, B, N1,C_Red); // 1 Edge3(C, D, B, N2,C_Orange); // 2 Edge3(A, B, D, N3,C_Lemon); // 3 Edge3(A, D, C, N4,C_Aqua); // 4 end;
Рис.6.3. Октаедр, вписаний в куб. Вершини октаедра є центрами граней куба (рис.6.3). Приклад 6.3. Процедура побудови октаедра procedure DrawSolidOctahedron; const q=0.577350269; {q=1/sqrt(3);} // вершини октаедра // нормалі до граней A:V_Array=(1,0,0); N1:N_Array=(q, q, q); B:V_Array=(0,0,1); N2:N_Array=(-q, q, q); C:V_Array=(-1,0,0); N3:N_Array=(-q, q,-q); D:V_Array=(0,0,-1); N4:N_Array=(q, q,-q); E:V_Array=(0,1,0); N5:N_Array=(q,-q, q); F:V_Array=(0,-1,0); N6:N_Array=(-q,-q, q); N7:N_Array=(-q,-q,-q); N8:N_Array=(q,-q,-q); Begin // будуємо грані октаедра(прав.трикутники) Edge3(E, B, A, N1,C_Red); // 1 Edge3(E, C, B, N2,C_Orange); // 2 Edge3(E, D, C, N3,C_Lemon); // 3 Edge3(E, A, D, N4,C_Aqua); // 4 Edge3(F, A, B, N5,C_Green); // 5 Edge3(F, B, C, N6,C_Cherry); // 6 Edge3(F, C, D, N7,C_Yellow); // 7 Edge3(F, D, A, N8,C_White) end; // 8
Рис.6.4. Послідовність побудови бічних граней ікосаедра. Додекаедр та ікосаедр також можна отримати з допомогою відрізання частин куба. Однак існує і більш простий спосіб. Будуються два кола одиничного радіуса, які лежать на циліндрі на відстані 1 одне від одного (рис.6.4). Кожне з кіл ділиться на 5 рівних частин, причому точки вибираються так, щоб на нижньому колі вершини утвореного правильного п’ятикутника лежали навпроти середин сторін верхнього і навпаки. Отримані на колах точки послідовно з’єднуються, утворюючи пояс із 10 правильних трикутників. Таким чином утворюється 10 вершин ікосаедра. Ще дві точки вибираються над центром верхнього і під центром нижнього п’ятикутників на відстані
Рис.6.5. Побудова ікосаедра з трьох частин. Координати (x, y) для V3,V4,V8,V9 обчислюються, як проекції одиничного вектора з кутом 72°, а для V2,V5,V7,V10 з кутом 36 °. Координати (x, y) для інших точок та значення z для всіх точок добре зрозумілі з процесу побудови ікосаедра на наведених вище рисунках. Координати вершин ікосаедра (список додається до прикладів 6.4 і 6.5). const cos72= 0.309016994; sin72= 0.951056516; cos36= 0.809016994; sin36= 0.587785252; q5div2=1.118033989; { sqrt(5)/2; } Var // задаємо вершини ікосаедра V1: V_Array=(0, -1, 0.5); V2: V_Array=(sin36, -cos36, -0.5); V3: V_Array=(sin72,-cos72, 0.5); V4: V_Array=(sin72, cos72, -0.5); V5: V_Array=(sin36, cos36, 0.5); V6: V_Array=(0, 1, -0.5); V7: V_Array=(-sin36, cos36, 0.5); V8: V_Array=(-sin72, cos72, -0.5); V9: V_Array=(-sin72,-cos72, 0.5); V10: V_Array=(-sin36,-cos36, -0.5); V11: V_Array=(0, 0, q5div2); V12: V_Array=(0, 0, -q5div2); Довжина всіх вищенаведених векторів
Рис.6.6. Взаємозв’язок додекаедра та ікосаедра Додекаедр і ікосаедр пов’язані між собою (рис.6.6). З’єднавши центри граней ікосаедра, одержимо додекаедр. І навпаки: з’єднавши центри граней додекаедра, одержимо ікосаедр. Додекаедр найпростіше побудувати, з’єднавши центри граней ікосаедра. Для обчислення координат вершин додекаедра досить додати і розділити на 3 координати вершин кожної із 20 граней ікосаедра (рис.6.7). Обчислення координат вершин додекаедра – центрів граней ікосаедра (додається до прикладів 6.4 і 6.5). Var M1,M2,M3,M4,M5, M6,M7,M8,M9,M10, M11,M12,M13,M14,M15,M16,M17,M18,M19,M20:V_Array; procedure Middle(V1,V2,V3:V_Array;var M:V_Array); begin M[0]:=(V1[0]+V2[0]+V3[0])/3; M[1]:=(V1[1]+V2[1]+V3[1])/3; M[2]:=(V1[2]+V2[2]+V3[2])/3 end;
|
|||||
Последнее изменение этой страницы: 2016-04-08; просмотров: 423; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.188.99.140 (0.007 с.) |