## Учебная практика 2022. Понедельник 27.06 (или Вторник 28.06). Мединец Илья Сергеевич
[TOC]
## Задание №1
В данном задании надо было создать одиночную страницу c названием, в котором есть Ваше Имя и Фамилия, на сайте replit.com, в которой указываются мои ФИО, Название Вашей специальности,Курс и Фото в профиль.
#### Решение задания
Создаем файли HTML ,CSS исполбзуя тег `<div>` добавляем имя и фамилию,
с помощью тэга `<img>` подключаем фотографию
```html=11
<body>
<p>Мединец Илья Сергеевич + Прикладная математика + Первый курс</p>
<div>
<img src="pic.jpg">
</div>
</body>
```
Уменьшаем размер картинки с помощью `style.css` так она слишком большая:
```html=1
html, body {
height: 100%;
width: 100%;
}
img{
height: 50%;
width: 50%;
}
```
#### Ссылка на код
https://replit.com/@Illia-Sierghii1/Ilia-Miediniets#index.html
## Задание №2
Визуализировать лошарика при помощью GLSL.
### Решение задания
Для начала мы, как и в последиющих решениях нормализируем координаты для работы в плоскости:
```glsl=4
vec2 uv = 2.0*vec2(fragCoord.xy - 0.5*iResolution.xy)/iResolution.y;
```
Закрашиваем всю плоскость белым цветом:
```glsl=6
fragColor = vec4(1.0,1.0,1.0,1.0);
```
Сразу подготовим нужные цвета:
```glsl=7
vec3 bgCol = vec3(0.3);
vec3 blue = vec3(0.1, 0.9, 0.9);
vec3 red = vec3(1.0, 0.1, 0.2);
vec3 purple = vec3(0.5, 0.0, 0.5);
vec3 orange = vec3(1.0, 0.7, 0.0);
vec3 green = vec3(0.0, 1.0, 0.0);
vec3 darkblue = vec3(0.0, 0.0, 1.0);
vec3 yellow = vec3(1.0, 1.0, 0.0);
```
Для рисования круга мы будем проверять, принадлежит ли точка кругу, и если ответ положительный, будем закрашивать ее:
```glsl=22
x1 = uv.x - 0.74;
y1 = uv.y + 0.81;
r = 0.09;
if(x1*x1 + y1*y1 < r*r){
fragColor = vec4(blue,1.0);
}
```
где r - радиус круга, а (0.74,-0,81) - координаты центра круга.
#### Ссылка на код
https://www.shadertoy.com/view/sd3BD8
## Задание №3
Провести математическую визуализацию Буратино или сверчка на сайте shadertoy.com при помощи неявных функций в пиксельном шейдере.
### Решение задания
```glsl=1
void mainImage( out vec4 fragColor, in vec2 fragCoord )
{
// Normalized pixel coordinates (from 0 to 1)
vec2 uv = 2.0*vec2(fragCoord.xy - 0.5*iResolution.xy)/iResolution.y;
fragColor = vec4(1.0,1.0,1.0,1.0);
vec3 red = vec3(1.0,0.2,0.2);
vec3 darkred = vec3(0.7,0.1,0.1);
vec3 black = vec3(0.0,0.0,0.0);
vec3 body = vec3(1.0,0.95,0.5);
vec3 pink = vec3(1.0, 0.5, 0.5);
vec3 lblue = vec3(0.0,0.6,1.0);
float x1;
float y1;
float r;
x1 = uv.x + 0.2;
y1 = uv.y + 0.1;
if(abs(x1)<0.4 && abs(y1)<0.4){
fragColor = vec4(body,1.0);
}//nose
x1 = uv.x - 0.1;
y1 = uv.y - 0.2;
r = 0.7;
if(x1*x1*0.5 + y1*y1*3.0 < r*r){
fragColor = vec4(1.0,1.0,1.0,1.0);
}//nose
x1 = uv.x - 0.1;
y1 = uv.y + 0.62;
r = 0.7;
if(x1*x1*0.5 + y1*y1*3.0 < r*r){
fragColor = vec4(1.0,1.0,1.0,1.0);
}//nose
x1 = uv.x + 0.7;
y1 = uv.y + 0.5;
r = 0.25;
if(x1*x1*5.0 + y1*y1 < r*r){
fragColor = vec4(body,1.0);
}//neck
x1 = uv.x + 0.7;
y1 = uv.y + 0.2;
r = 0.35;
if(x1*x1 + y1*y1 < r*r){
fragColor = vec4(body,1.0);
}//head
x1 = uv.x + 0.55;
y1 = uv.y + 0.15;
r = 0.08;
if(x1*x1 + y1*y1 < r*r){
fragColor = vec4(black,1.0);
}//eye
x1 = uv.x + 0.57;
y1 = uv.y + 0.1;
r = 0.09;
if(x1*x1 + y1*y1 < r*r){
fragColor = vec4(body,1.0);
}//eye1
x1 = uv.x + 0.51;
y1 = uv.y + 0.4;
r = 0.08;
if(x1*x1 + y1*y1 < r*r){
fragColor = vec4(black,1.0);
}//mouth
x1 = uv.x + 0.5;
y1 = uv.y + 0.37;
r = 0.09;
if(x1*x1 + y1*y1 < r*r){
fragColor = vec4(body,1.0);
}//mouth1
x1 = uv.x + 0.7;
y1 = uv.y + 0.4;
r = 0.1;
if(x1*x1 + y1*y1 < r*r){
fragColor = vec4(pink,1.0);
}//cheek
x1 = uv.x + 0.7;
y1 = uv.y - 0.4;
if(abs(x1)<0.4 && abs(y1)<0.4){
fragColor = vec4(red,1.0);
}//hat
x1 = uv.x + 0.25;
y1 = uv.y - 0.85;
r = 0.8;
if(3.0*x1*x1 + y1*y1 < r*r){
fragColor = vec4(1.0,1.0,1.0,1.0);
}//hat
x1 = uv.x + 1.15;
y1 = uv.y - 0.85;
r = 0.8;
if(3.0*x1*x1 + y1*y1 < r*r){
fragColor = vec4(1.0,1.0,1.0,1.0);
}//hat
x1 = uv.x + 0.7;
y1 = uv.y - 0.7;
r = 0.1;
if(x1*x1 + y1*y1 < r*r){
fragColor = vec4(red,1.0);
}//hat
x1 = uv.x + 1.1;
y1 = uv.y - 0.03;
r = 0.03;
if(x1*x1 + y1*y1 < r*r){
fragColor = vec4(red,1.0);
}//hat
x1 = uv.x + 0.3;
y1 = uv.y - 0.03;
r = 0.03;
if(x1*x1 + y1*y1 < r*r){
fragColor = vec4(red,1.0);
}//hat
x1 = uv.x + 0.7;
y1 = uv.y + 1.0;
r = 0.35;
if(2.0*x1*x1 + y1*y1 < r*r){
fragColor = vec4(red,1.0);
}//body
x1 = uv.x + 0.5;
y1 = uv.y + 0.9;
r = 0.05;
if(2.0*x1*x1 + y1*y1 < r*r){
fragColor = vec4(1.0,1.0,1.0,1.0);
}//button
x1 = uv.x + 0.55;
y1 = uv.y + 0.8;
r = 0.05;
if(2.0*x1*x1 + y1*y1 < r*r){
fragColor = vec4(1.0,1.0,1.0,1.0);
}//button
x1 = uv.x + 0.55;
y1 = uv.y + 0.25;
r = 0.03;
if(9.0*x1*x1 + y1*y1 < r*r){
fragColor = vec4(lblue,1.0);
}//tear
x1 = uv.x + 0.55;
y1 = uv.y + 0.28;
r = 0.02;
if(x1*x1 + y1*y1 < r*r){
fragColor = vec4(lblue,1.0);
}//tear
// Output to screen
}
```
#### Ссылка на код
https://www.shadertoy.com/view/7s3fDH
## Задание №4
Провести математическую визуализацию своего имени и фамилии на сайте shadertoy.com при помощи неявных функций в пиксельном шейдере.
### Решение задания
```glsl=1
void mainImage( out vec4 fragColor, in vec2 fragCoord )
{
// Normalized pixel coordinates (from 0 to 1)
vec2 uv = 2.0*vec2(fragCoord.xy - 0.5*iResolution.xy)/iResolution.y;
fragColor = vec4(1.0,1.0,1.0,1.0);
vec3 black = vec3(0.0,0.0,0.0);
float x1;
float y1;
float r;
//и
x1 = uv.x + 1.5;
y1 = uv.y - 0.8;
if(abs(x1)<0.01 && abs(y1)<0.11){
fragColor = vec4(black,1.0);
}
x1 = uv.x + 1.48;
y1 = uv.y - 0.71;
if(abs(x1)<0.02 && abs(y1)<0.02){
fragColor = vec4(black,1.0);
}
x1 = uv.x + 1.45;
y1 = uv.y - 0.76;
if(abs(x1)<0.01 && abs(y1)<0.03){
fragColor = vec4(black,1.0);
}
x1 = uv.x + 1.43;
y1 = uv.y - 0.80;
if(abs(x1)<0.01 && abs(y1)<0.01){
fragColor = vec4(black,1.0);
}
x1 = uv.x + 1.41;
y1 = uv.y - 0.84;
if(abs(x1)<0.01 && abs(y1)<0.03){
fragColor = vec4(black,1.0);
}
x1 = uv.x + 1.38;
y1 = uv.y - 0.89;
if(abs(x1)<0.02 && abs(y1)<0.02){
fragColor = vec4(black,1.0);
}
x1 = uv.x + 1.36;
y1 = uv.y - 0.8;
if(abs(x1)<0.01 && abs(y1)<0.11){
fragColor = vec4(black,1.0);
}
//л
x1 = uv.x + 1.3;
y1 = uv.y - 0.81;
if(abs(x1)<0.01 && abs(y1)<0.1){
fragColor = vec4(black,1.0);
}
x1 = uv.x + 1.31;
y1 = uv.y - 0.71;
if(abs(x1)<0.02 && abs(y1)<0.02){
fragColor = vec4(black,1.0);
}
x1 = uv.x + 1.25;
y1 = uv.y - 0.9;
if(abs(x1)<0.05 && abs(y1)<0.01){
fragColor = vec4(black,1.0);
}
x1 = uv.x + 1.21;
y1 = uv.y - 0.80;
if(abs(x1)<0.01 && abs(y1)<0.11){
fragColor = vec4(black,1.0);
}
//ь
x1 = uv.x + 1.15;
y1 = uv.y - 0.80;
if(abs(x1)<0.01 && abs(y1)<0.11){
fragColor = vec4(black,1.0);
}
x1 = uv.x + 1.1;
y1 = uv.y - 0.7;
if(abs(x1)<0.05 && abs(y1)<0.01){
fragColor = vec4(black,1.0);
}
x1 = uv.x + 1.1;
y1 = uv.y - 0.8;
if(abs(x1)<0.05 && abs(y1)<0.01){
fragColor = vec4(black,1.0);
}
x1 = uv.x + 1.06;
y1 = uv.y - 0.75;
if(abs(x1)<0.01 && abs(y1)<0.05){
fragColor = vec4(black,1.0);
}
//я
x1 = uv.x + 1.0;
y1 = uv.y - 0.86;
if(abs(x1)<0.01 && abs(y1)<0.05){
fragColor = vec4(black,1.0);
}
x1 = uv.x + 0.95;
y1 = uv.y - 0.9;
if(abs(x1)<0.05 && abs(y1)<0.01){
fragColor = vec4(black,1.0);
}
x1 = uv.x + 0.9;
y1 = uv.y - 0.80;
if(abs(x1)<0.01 && abs(y1)<0.11){
fragColor = vec4(black,1.0);
}
x1 = uv.x + 0.95;
y1 = uv.y - 0.82;
if(abs(x1)<0.05 && abs(y1)<0.01){
fragColor = vec4(black,1.0);
}
x1 = uv.x + 0.92;
y1 = uv.y - 0.8;
if(abs(x1)<0.01 && abs(y1)<0.02){
fragColor = vec4(black,1.0);
}
x1 = uv.x + 0.94;
y1 = uv.y - 0.76;
if(abs(x1)<0.01 && abs(y1)<0.02){
fragColor = vec4(black,1.0);
}
x1 = uv.x + 0.96;
y1 = uv.y - 0.72;
if(abs(x1)<0.01 && abs(y1)<0.02){
fragColor = vec4(black,1.0);
}
x1 = uv.x + 0.98;
y1 = uv.y - 0.7;
if(abs(x1)<0.01 && abs(y1)<0.01){
fragColor = vec4(black,1.0);
}
//м
x1 = uv.x + 0.7;
y1 = uv.y - 0.80;
if(abs(x1)<0.01 && abs(y1)<0.11){
fragColor = vec4(black,1.0);
}
x1 = uv.x + 0.67;
y1 = uv.y - 0.89;
if(abs(x1)<0.02 && abs(y1)<0.02){
fragColor = vec4(black,1.0);
}
x1 = uv.x + 0.65;
y1 = uv.y - 0.85;
if(abs(x1)<0.02 && abs(y1)<0.02){
fragColor = vec4(black,1.0);
}
x1 = uv.x + 0.62;
y1 = uv.y - 0.81;
if(abs(x1)<0.01 && abs(y1)<0.04){
fragColor = vec4(black,1.0);
}
x1 = uv.x + 0.59;
y1 = uv.y - 0.85;
if(abs(x1)<0.02 && abs(y1)<0.02){
fragColor = vec4(black,1.0);
}
x1 = uv.x + 0.56;
y1 = uv.y - 0.89;
if(abs(x1)<0.02 && abs(y1)<0.02){
fragColor = vec4(black,1.0);
}
x1 = uv.x + 0.54;
y1 = uv.y - 0.80;
if(abs(x1)<0.01 && abs(y1)<0.11){
fragColor = vec4(black,1.0);
}
//е
x1 = uv.x + 0.48;
y1 = uv.y - 0.80;
if(abs(x1)<0.01 && abs(y1)<0.11){
fragColor = vec4(black,1.0);
}
x1 = uv.x + 0.42;
y1 = uv.y - 0.9;
if(abs(x1)<0.05 && abs(y1)<0.01){
fragColor = vec4(black,1.0);
}
x1 = uv.x + 0.42;
y1 = uv.y - 0.7;
if(abs(x1)<0.05 && abs(y1)<0.01){
fragColor = vec4(black,1.0);
}
x1 = uv.x + 0.42;
y1 = uv.y - 0.8;
if(abs(x1)<0.05 && abs(y1)<0.01){
fragColor = vec4(black,1.0);
}
//д
x1 = uv.x + 0.30;
y1 = uv.y - 0.72;
if(abs(x1)<0.01 && abs(y1)<0.03){
fragColor = vec4(black,1.0);
}
x1 = uv.x + 0.24;
y1 = uv.y - 0.74;
if(abs(x1)<0.05 && abs(y1)<0.01){
fragColor = vec4(black,1.0);
}
x1 = uv.x + 0.18;
y1 = uv.y - 0.72;
if(abs(x1)<0.01 && abs(y1)<0.03){
fragColor = vec4(black,1.0);
}
x1 = uv.x + 0.28;
y1 = uv.y - 0.83;
if(abs(x1)<0.01 && abs(y1)<0.08){
fragColor = vec4(black,1.0);
}
x1 = uv.x + 0.20;
y1 = uv.y - 0.83;
if(abs(x1)<0.01 && abs(y1)<0.08){
fragColor = vec4(black,1.0);
}
x1 = uv.x + 0.24;
y1 = uv.y - 0.90;
if(abs(x1)<0.05 && abs(y1)<0.01){
fragColor = vec4(black,1.0);
}
//и
x1 = uv.x + 0.12;
y1 = uv.y - 0.8;
if(abs(x1)<0.01 && abs(y1)<0.11){
fragColor = vec4(black,1.0);
}
x1 = uv.x + 0.10;
y1 = uv.y - 0.71;
if(abs(x1)<0.02 && abs(y1)<0.02){
fragColor = vec4(black,1.0);
}
x1 = uv.x + 0.07;
y1 = uv.y - 0.76;
if(abs(x1)<0.01 && abs(y1)<0.03){
fragColor = vec4(black,1.0);
}
x1 = uv.x + 0.05;
y1 = uv.y - 0.80;
if(abs(x1)<0.01 && abs(y1)<0.01){
fragColor = vec4(black,1.0);
}
x1 = uv.x + 0.03;
y1 = uv.y - 0.84;
if(abs(x1)<0.01 && abs(y1)<0.03){
fragColor = vec4(black,1.0);
}
x1 = uv.x;
y1 = uv.y - 0.89;
if(abs(x1)<0.02 && abs(y1)<0.02){
fragColor = vec4(black,1.0);
}
x1 = uv.x - 0.02;
y1 = uv.y - 0.8;
if(abs(x1)<0.01 && abs(y1)<0.11){
fragColor = vec4(black,1.0);
}
//н
x1 = uv.x - 0.08;
y1 = uv.y - 0.8;
if(abs(x1)<0.01 && abs(y1)<0.11){
fragColor = vec4(black,1.0);
}
x1 = uv.x - 0.14;
y1 = uv.y - 0.8;
if(abs(x1)<0.05 && abs(y1)<0.01){
fragColor = vec4(black,1.0);
}
x1 = uv.x - 0.2;
y1 = uv.y - 0.8;
if(abs(x1)<0.01 && abs(y1)<0.11){
fragColor = vec4(black,1.0);
}
//е
x1 = uv.x - 0.26;
y1 = uv.y - 0.80;
if(abs(x1)<0.01 && abs(y1)<0.11){
fragColor = vec4(black,1.0);
}
x1 = uv.x - 0.32;
y1 = uv.y - 0.9;
if(abs(x1)<0.05 && abs(y1)<0.01){
fragColor = vec4(black,1.0);
}
x1 = uv.x - 0.32;
y1 = uv.y - 0.7;
if(abs(x1)<0.05 && abs(y1)<0.01){
fragColor = vec4(black,1.0);
}
x1 = uv.x - 0.32;
y1 = uv.y - 0.8;
if(abs(x1)<0.05 && abs(y1)<0.01){
fragColor = vec4(black,1.0);
}
//ц
x1 = uv.x - 0.42;
y1 = uv.y - 0.80;
if(abs(x1)<0.01 && abs(y1)<0.11){
fragColor = vec4(black,1.0);
}
x1 = uv.x - 0.48;
y1 = uv.y - 0.7;
if(abs(x1)<0.05 && abs(y1)<0.01){
fragColor = vec4(black,1.0);
}
x1 = uv.x - 0.54;
y1 = uv.y - 0.80;
if(abs(x1)<0.01 && abs(y1)<0.11){
fragColor = vec4(black,1.0);
}
x1 = uv.x - 0.56;
y1 = uv.y - 0.68;
if(abs(x1)<0.01 && abs(y1)<0.03){
fragColor = vec4(black,1.0);
}
}
```
#### Ссылка на код
https://www.shadertoy.com/view/fddfD8