Пример работы первой версии ShellGL:
download ShellGL v1.0 14.10.2014
Содержимое архива:
- colorTable.script - набор defin'ов для задания цветов в консоли
- shellGl.script - функции для работы с 3d графикой
- pictures - папака с текстурами
- index.script - shell скрипт демонстрирующий возможности shellGL
#!/bin/bash
#подключение библиотеки shellGL
source shellGL.script
linesCount=72 #количество элементов в массиве координат = количество вершин * 3
#счётчик задающий угол поворота
timer=0
#главный игровой цикл
while [ true ]
do
#координаты вершин, каждые 3 штуки задают вершину, каждая строка задаёт линию
plain=(
0 0 0 0 0 40
0 0 40 40 0 40
40 0 40 40 0 0
40 0 0 0 0 0
0 20 0 0 20 40
0 20 40 40 20 40
40 20 40 40 20 0
40 20 0 0 20 0
0 0 0 0 20 0
0 0 40 0 20 40
40 0 40 40 20 40
40 0 0 40 20 0
)
#увеличиваем значение счётчика угла на pi/25 градусов
timer=$(echo "$timer + $pi/25" | bc -l)
if [ $(awk 'BEGIN{printf "%.0f\n","'$timer'"}') -gt 10 ]; then
timer=0 #сбрасываем значение таймера
fi
#задаём значение матрицы перемещения
#смещение будет происходить на -20 единиц по x, 0 по y и -20 по z
#это смещение делается, чтобы центр куба совпал с началом координат
translateMat=$(translateMatrix -20 0 -20)
#обойти все вершины
for ((i=0; i<linesCount; i+=3))
do
#записать тройку обрабатываемых вершин в вектор
tempVec=( ${plain[$(($i+0))]} ${plain[$(($i+1))]} ${plain[$(($i+2))]} )
#применить к вектору матрицу смещение
resTranslate=( $(mulMatrix tempVec translateMat) )
#записать координаты вектора назад в массив вершин
plain[$(($i+0))]=${resTranslate[0]}
plain[$(($i+1))]=${resTranslate[1]}
plain[$(($i+2))]=${resTranslate[2]}
done
#задаётся матрица поворота на угол лежащий в переменной timer
rotateMatY=$(rotateMatrixY $timer)
#обойти все вершины
for ((i=0; i<linesCount; i+=3))
do
#записать тройку обрабатываемых вершин в вектор
tempVec=( ${plain[$(($i+0))]} ${plain[$(($i+1))]} ${plain[$(($i+2))]} )
#применить к вектору матрицу поворота
resTranslate=( $(mulMatrix tempVec rotateMatY) )
#записать координаты вектора назад в массив вершин
plain[$(($i+0))]=${resTranslate[0]}
plain[$(($i+1))]=${resTranslate[1]}
plain[$(($i+2))]=${resTranslate[2]}
done
#задаём значение матрицы перемещения
#смещение будет происходить на 40 единиц по x, 10 по y и 0 по z
translateMat=$(translateMatrix 40 10 0)
#обойти все вершины
for ((i=0; i<linesCount; i+=3))
do
#записать тройку обрабатываемых вершин в вектор
tempVec=( ${plain[$(($i+0))]} ${plain[$(($i+1))]} ${plain[$(($i+2))]} )
#применить к вектору матрицу смещение
resTranslate=( $(mulMatrix tempVec translateMat) )
#записать координаты вектора назад в массив вершин
plain[$(($i+0))]=${resTranslate[0]}
plain[$(($i+1))]=${resTranslate[1]}
plain[$(($i+2))]=${resTranslate[2]}
done
#очистить экран
clearScreen
#установить цвет рисовки зелёным
setColor ${On_IGreen}
#обойти массив, как массив линий
for ((i=0; i<linesCount; i+=6))
do
#нарисовать линию с координатами x0 y0 z0 и x1 y1 z1
draw3DLine ${plain[$(($i+0))]} ${plain[$(($i+1))]} ${plain[$(($i+2))]} ${plain[$(($i+3))]} ${plain[$(($i+4))]} ${plain[$(($i+5))]}
done
done
The Hotel & Casino in East Village - MapYRO
ОтветитьУдалитьThis 5-star 안동 출장마사지 hotel 과천 출장안마 and casino is located 아산 출장샵 on 포항 출장샵 the waterfront on the Potomac waterfront. Nearby hotels. 811 동해 출장샵 Casino Way, Suite 123, East Village, NY