# Учебная практика. Среда 30.06.2021. Чачко Натан Леонидович
1. Присутствовал на лекции в ZOOM.
2. Дополнил [страницу на Replit](https://replit.com/@Natanius18/Natan-Chachko#index.html).
3. Сделал [шейдер свое имя](https://www.shadertoy.com/view/ftlSzn) (пока что только имя):
```javascript=
float Q(float x, float y, float r)
{
return max(abs(x),abs(y)) - r ;
}
mat2 rotate(float angle)
{
return mat2(cos(angle),-sin(angle),
sin(angle),cos(angle));
}
float N(vec2 p, float ax, float ay)
{
float c = Q((p.x - ax - 0.06) * 1.1, (p.y + ay) / 7.5, 0.035) * 100.0;
c = min(c, Q((p.x - ax + 0.1) * 1.1, (p.y + ay) / 7.5, 0.035) * 100.0);
vec2 pos = rotate(radians(-.0)) * p;
c = min(c, Q((pos.x - 0.59) / 2., pos.y + 0.5, 0.045) * 100.0);
return c;
}
float N2(vec2 p, float ax, float ay)
{
float c = Q((p.x - ax - 0.06) * 1.1, (p.y + ay) / 7.5, 0.035) * 100.0;
c = min(c, Q((p.x - ax + 0.1) * 1.1, (p.y + ay) / 7.5, 0.035) * 100.0);
vec2 pos = rotate(radians(-.0)) * p;
c = min(c, Q((pos.x + 0.67) / 2., pos.y + 0.5, 0.045) * 100.0);
return c;
}
float T(vec2 p, float ax, float ay)
{
float c = Q((p.x - ax - 0.06) * 1.5, (p.y + ay) / 7.3, 0.035) * 100.0;
vec2 pos = rotate(radians(.0)) * p;
c = min(c, Q((pos.x + 0.045) / 3., pos.y + 0.7, 0.04) * 100.0);
return c;
}
float A(vec2 p, float ax1, float ay1, float ax2, float ay2)
{
vec2 pos = rotate(radians(-80.0)) * p;
float c = Q((pos.x + ax1) / 9.0, pos.y + ay1, 0.03) * 100.0;
pos = rotate(radians(80.0)) * p;
c = min(c, Q((pos.x + ax2) / 9.0, pos.y + ay2, 0.03) * 100.0);
c = min(c, Q((p.x - 0.25) / 1.8, p.y + 0.47, 0.035) * 100.0);
return c;
}
float A2(vec2 p, float ax1, float ay1, float ax2, float ay2)
{
vec2 pos = rotate(radians(-80.0)) * p;
float c = Q((pos.x + ax1) / 9.0, pos.y + ay1, 0.03) * 100.0;
pos = rotate(radians(80.0)) * p;
c = min(c, Q((pos.x + ax2) / 9.0, pos.y + ay2, 0.03) * 100.0);
c = min(c, Q((p.x + 0.32) / 1.8, p.y + 0.47, 0.035) * 100.0);
return c;
}
void mainImage( out vec4 fragColor, in vec2 fragCoord )
{
vec2 p = 1.0 - 2.0 * fragCoord/iResolution.xy;
float c = N(p, 0.6, 0.5);
c = min(c, A(p, -0.52, -0.1, 0.43, 0.38));
c = min(c, T(p, -.1, .5));
c = min(c, A2(p, -0.43, 0.46, 0.54, -0.18));
c = min(c, N2(p, -0.65, 0.5));
vec3 pic = vec3(1., .0, .1)*(-c);
fragColor = vec4(pic, 1.0);
pic.g = cos(iTime/1.0);
pic.b = sin(iTime/2.3);
fragColor = vec4(pic,1.0);
}
```
4. Пытался сделать [свой портрет](https://www.shadertoy.com/view/stfXzn), но пока что не закончил. Столкнулся со сложностью вырисовки с помощью треугольников. Вот какие этапы прошел:

*Оригинальная фотография*

*Первая попытка обвести контур*

*Более подробный контур*
5. Сделал [смешарика](https://www.shadertoy.com/view/stlXzr), но нужно разобраться еще, как менять цвет разных элементов по отдельности, чтоб закончить глаза красиво. И еще хочу наклонить руки, тоже нужно будет доделать этот момент.
> **Вывод:** очень большой объем материала, довольно тяжело делать все задания сразу за один день. Очень хочу научиться использовать разные цвета для разных элементов и доделать портрет до узнаваемого состояния.
> Отдельное спасибо преподавателю за лекцию, было полезно и существенно помогло в выполнении и самое главное — понимании заданий.