Самый простой вариант сглаживания – через контекстное меню. Пункт Shade Smooth (гладкое затенение). Тут же находится Shade Flat (плоское затенение), который возвращает к прежнему состоянию.
В режиме редактирования объекта есть другой сглаживания – Smooth Vertices (сгладить вершины). При использовании этого инструмента объект или его часть не становятся сглаженными, но вершины и грани изменяются так, чтобы переход между ними был более покатым. Можно использовать другой вариант – Smooth Laplacian. Эффект получается более аккуратным.
2. В Blender при выполнении базовых трансформаций чаще пользуются горячими клавишами.
Нажатия (не зажатие, а просто нажать и отпустить) клавиш G, R, S выполняют операции:
G – grab/move – перемещение
R – rotate – вращение
S – scale – изменение размера
После вызова операции, трансформация происходит при движении мыши. Чтобы подтвердить изменение, надо кликнуть левой кнопкой мыши, для отмены – правой. В данном случае, также как с визуальными манипуляторами, можно зажимать Ctrl и Ctrl+Shift.
Если требуется трансформация только по одной оси, то сразу после нажатия буквы G, R или S, надо нажать X, Y или Z, которые ограничат изменения только пределами одной оси. При этом на сцене появится цветная линия-ось, проходящая через центр объекта.
Ограничение трансформации одной осью
Вращение (R) куба по оси Z
При масштабировании следует учитывать, чем ближе был курсор мыши к центру объекта перед нажатием S, тем сильнее объект будет изменяться при движении мыши. Другая особенность – перевод курсора в противоположную сторону переворачивает объект.
Если два раза подряд нажать клавишу R, то объект можно будет вращать как трекбол.
#include <bits/stdc++.h>
using namespace std;
int main()
{
char a[8][8];
long long x, y, i, j;
cin >> y >> x;
for(i = 0; i < 8; i++){
for(j = 0; j < 8; j++){
a[i][j] = '.';
}
}
x--;
y--;
if(x - y >= 0){
i = 0;
j = x - y;
}
else{
j = 0;
i = y - x;
}
for(;i < 8 and j < 8;){
a[i][j] = '*';
i++;
j++;
}
if(x + y <= 7){
i = 0;
j = x + y;
}
else{
j = 7;
i = x + y - 7;
}
for(;i < 8 and j >= 0;){
a[i][j] = '*';
i++;
j--;
}
i = 0;
j = x;
for(;i < 8; i++){
a[i][j] = '*';
}
i = y;
j = 0;
for(;j < 8; j++){
a[i][j] = '*';
}
a[y][x] ='Q';
for(i = 0; i < 8; i++){
for(j = 0; j < 8; j++){
cout << a[i][j] << " ";
}
cout << '\n';
}
return 0;
}
Объяснение:
Type int=100..999;
Var x:int;
Begin
readln(x);
case (x div 100) of
1:write('Сто ');
2:write('Двести ');
3:write('Триста ');
4:write('Четыреста ');
5:write('Пятьсот ');
6:write('Шестьсот ');
7:write('Семьсот ');
8:write('Восемьсот ');
9:write('Девятьсот ');
end;
if ((x mod 100) div 10)=1 then
case (x mod 10) of
0:write('десять ');
1:write('одиннадцать ');
2:write('двенадцать ');
3:write('тринадцать ');
4:write('четырнадцать ');
5:write('пятнадцать ');
6:write('шестнадцать ');
7:write('семнадцать ');
8:write('восемнадцать ');
9:write('девятнадцать ');
end
else
begin
case ((x mod 100) div 10) of
2:write('двадцать ');
3:write('тридцать ');
4:write('сорок ');
5:write('пятьдесят ');
6:write('шестьдесят ');
7:write('семьдесят ');
8:write('восемьдесят ');
9:write('девяносто ');
end;
case (x mod 10) of
1:write('один');
2:write('два');
3:write('три');
4:write('четыре');
5:write('пять');
6:write('шесть');
7:write('семь');
8:write('восемь');
9:write('девять');
end;
end;
End.