# Учебная практика. Вторник 29.06.2021. Федяева Евгения Игоревна
1. Присутствовала на занятии в 8.00.
2. Ответила на вопросы начального опроса в комментариях.
3. Прочитала лекционный материал и начала читать книгу "The Book of Shaders".
4. Создала [Одиночную страницу](https://replit.com/@eFediaieva/Evgeniia-Fediaieva#index.html) на replit.com, с указанными именем, фамилией, отчеством, фотографией в профиль, а также ссылками на сайт shadertoy.com с реализованными визуализациями.
5. Шейдеры:
* [Чебурашка](https://www.shadertoy.com/view/fl2GDt)
```
float Circle(vec2 xy, float r, vec2 pos)
{
float d = length(xy-pos);
float cl = smoothstep(r, r-0.008, d);
return cl;
}
void mainImage( out vec4 fragColor, in vec2 fragCoord )
{
vec2 xy = fragCoord.xy/iResolution.xy;
xy -= 0.5;
xy.x *= iResolution.x/iResolution.y;
float chbr = Circle(xy, 0.2, vec2(0.0, -0.1)); //body
chbr += Circle(xy, 0.15, vec2(0.0, 0.2)); //head
chbr += Circle(xy, 0.125, vec2(0.2, 0.3)); //ear
chbr += Circle(xy, 0.125, vec2(-0.2, 0.3)); //ear
chbr += Circle(xy, 0.08, vec2(0.23, -0.02)); //hand
chbr += Circle(xy, 0.08, vec2(-0.23, -0.02)); //hand
chbr += Circle(xy, 0.08, vec2(0.15, -0.3)); //leg
chbr += Circle(xy, 0.08, vec2(-0.15, -0.3)); //leg
chbr -= Circle(xy, 0.03, vec2(0.05, 0.23)); //eye
chbr -= Circle(xy, 0.03, vec2(-0.05, 0.23)); //eye
float smile = Circle(xy, 0.05, vec2(0.0, 0.16));
smile -= Circle(xy, 0.05, vec2(0.0, 0.17));
chbr -= smile;
vec3 pic = vec3(1.0, 1.0, 0.0)*chbr;
fragColor = vec4(pic, 1.0);
}
```
В основе рисунка лежит круг, поэтому отдельно реализована функция, описывающая его. В переменной `d` находится расстояние до условной точки (0, 0). Все точки, от которых расстояние до (0, 0) не превышает радиуса `r`, будут входить в круг. `pos` задает смещение круга. Сам круг задается функцией `smoothstep` с небольшим сглаживанием края.
Силуэт чебурашки представляет собой сложение(вычитание) различных кругов.
6. Зарегистрировалась на сайте overleaf.com и ознакомилась с примером оформления отчета о практике.