Какие свойства фигуры можно изменить

Какие свойства фигуры можно изменить thumbnail

samuel_unknown
12.07.2014

Введение

SFML предоставляет набор классов для отображения простых фигур. Каждый из типов фигур — это отдельный класс, но все они происходят из одного базового класса и потому имеют набор одинаковых методов. Каждый класс добавляет специфичные для него свойства: радиус для круга, размеры для прямоугольника, вершины многоугольника и т.д.

Общие свойства фигур

Трансформация (позиция, поворот, масштаб)

Это свойство является общим для всех графических классов SFML, поэтому они описаны в отдельном руководстве: (пока тут ссылка на не переведённый оригинал).

Цвет

Одно из главнейших свойств фигур — это их цвет, который можно менять с помощью метода setFillColor().

sf::CircleShape shape(50);

// задаём фигуре зелёный цвет
shape.setFillColor(sf::Color(100, 250, 50));

graphics-shape-color

Контур

Фигуры могут иметь контур. Вы можете задать толщину и цвет контура методами setOutlineThickness() и setOutlineColor().

sf::CircleShape shape(50);
shape.setFillColor(sf::Color(150, 50, 250));

// задаём контур толщиной 10 пикселей оранжевого цвета
shape.setOutlineThickness(10);
shape.setOutlineColor(sf::Color(250, 150, 100));

graphics-shape-outline

По умолчанию контур вырисовывается снаружи фигуры (если у вас есть круг с радиусом 10 и контур толщиной 5, то вы получите круг с радиусом 15). Контур можно применять и по направлению к центру фигуры, для этого необходимо задавать отрицательные значения толщины.

Для того что бы убрать контру, необходимо задать нулевую толщину. Если же вам нужен только контур, то в функции setFillColor() следует задать в качестве аргумента цвет sf::Color::Transparent.

Текстура

Фигуры, также как и спрайты, могут быть затекстурированы. Для указания того, какая часть текстуры должна отобразиться на фигуре, вам необходимо использовать метод setTextureRect(). Он принимает в качестве аргумента прямоугольную область текстуры для сопоставления ограничивающего прямоугольника фигуре. Этот метод не обеспечивает максимальной гибкости, но зато он гораздо проще в использовании, чем индивидуальное задание текстурных координат каждой точке фигуры.

sf::CircleShape shape(50);

// сопоставляем текстурированный прямоугольник 100×100 фигуре
shape.setTexture(&texture); // texture это sf::Texture
shape.setTextureRect(sf::IntRect(10, 10, 100, 100));

graphics-shape-texture

Обратите внимание что контур не текстурируется.

В случае когда фигура имеет цвет заливки, текстура модулируется (умножается) на него. Для отключения текстурирования следует вызвать setTexture(NULL).

Рисование фигуры

Рисование фигур такое же простое как и рисование других объектов SFML:

window.draw(shape);

Типы форм

Прямоугольник

Для рисования прямоугольников необходимо использовать класс sf::RectangleShape. Он имеет только одно свойство: размер прямоугольника.

// определяем прямоугольник размером 120×50
sf::RectangleShape rectangle(sf::Vector2f(120, 50));

// меняем размер 100×100
rectangle.setSize(sf::Vector2f(100, 100));

graphics-shape-rectangle

Круг

Круг представлен классом sf::CircleShape. Класс имеет два свойства: радиус и количество граней. Количество граней является дополнительным свойством, позволяющим настроить качество отображения круга: круги имитируются многоугольниками с большим числом граней (видеокарты просто не способны рисовать идеальные круги), в общем это свойство устанавливает число граней. Если вы рисуете маленькие круги, то вам нужно совсем немного граней что бы они отображались достаточно гладкими. Обратное тоже верно — чем больше круг, тем больше нужно граней.

// определяем круг с радиусом = 200
sf::CircleShape circle(200);

// меняем радиус на 40
circle.setRadius(40);

// меняем число граней на 100
circle.setPointCount(100);

Правильные многоугольники

На самом деле для них нет отдельного класса, да он и не нужен. Воспользовавшись классом sf::CircleShape и установив число граней равным 3, мы получим треугольник, если взять 4 грани, то получится квадрат и т.д.

// определяем треугольник
sf::CircleShape triangle(80, 3);

// определяем квадрат
sf::CircleShape square(80, 4);

// определяем восьмиугольник
sf::CircleShape octagon(80, 8);

graphics-shape-regular

Выпуклые фигуры

Класс sf::ConvexShape является последним из классов фигур: он позволяет определить фигуру, до тех пор пока она является выпуклой. Действительно, SFML не способен нарисовать вогнутые фигуры; если такие нарисовать необходимо, то их всегда можно разбить на несколько выпуклых.

Для определения выпуклой фигуры для начала необходимо указать общее число точек-вершин, и только потом определить эти точки.

// создаём пустую фигуру
sf::ConvexShape convex;

// изменяем размер на 5 вершин
convex.setPointCount(5);

// определяем вершины
convex.setPoint(0, sf::Vector2f(0, 0));
convex.setPoint(1, sf::Vector2f(150, 10));
convex.setPoint(2, sf::Vector2f(120, 90));
convex.setPoint(3, sf::Vector2f(30, 100));
convex.setPoint(4, sf::Vector2f(0, 50));

Очень важно определять вершины по часовой или против часовой стрелки, если определять их в произвольном порядке, то результат может быть непредсказуем!

graphics-shape-convex

Формально, sf::ConvexShape позволяет создавать только выпуклые фигуры. На деле же требования немножко мягче..На самом деле ваша форма должна соответствовать следующему критерию: любая из линий проведённых от центра тяжести фигуры до вершины, не должна пересекать границу фигуры. Следуя этому правилу можно, например, рисовать звёзды.

Линии

Для линий нет отдельного класса. Причина очень простая: если у линии есть толщина, используется фигура прямоугольник, если толщины нет, используется примитив линия.

Линия с толщиной:

sf::RectangleShape line(sf::Vector2f(150, 5));
line.rotate(45);

graphics-shape-line-rectangle

Линия без толщины:

sf::Vertex line[] =
{
sf::Vertex(sf::Vector2f(10, 10)),
sf::Vertex(sf::Vector2f(150, 150))
};

window.draw(line, 2, sf::Lines);

graphics-shape-line-primitive

Больше о примитивах будет рассказано в другом уроке (пока тут ссылка на не переведённый оригинал).

Пользовательские типы фигур

Вы можете расширить набор классов, имеющих свои типы форм. Для этого понадобится создать производный класс от класса sf::Shape и переопределить два метода:

  • getPointCount: возвращает число вершин фигуры
  • getPoint: возвращает вершину фигуры

Кроме того, каждый раз как у вашей фигуры изменяются вершины, вы должны вызывать защищённый (protected) метод update(), что бы базовый класс знал об этом и мог обновить своё состояние.

Вот полный пример создания подобного класса class: EllipseShape:

class EllipseShape : public sf::Shape
{
public :

explicit EllipseShape(const sf::Vector2f& radius = sf::Vector2f(0, 0)) :
m_radius(radius)
{
update();
}

void setRadius(const sf::Vector2f& radius)
{
m_radius = radius;
update();
}

Читайте также:  Какое свойство нефти используют люди для перекачивания по нефтепроводу

const sf::Vector2f& getRadius() const
{
return m_radius;
}

virtual unsigned int getPointCount() const
{
return 30; // здесь фиксировано, но может быть атрибутом класса, если это необходимо
}

virtual sf::Vector2f getPoint(unsigned int index) const
{
static const float pi = 3.141592654f;

float angle = index * 2 * pi / getPointCount() — pi / 2;
float x = std::cos(angle) * m_radius.x;
float y = std::sin(angle) * m_radius.y;

return sf::Vector2f(m_radius.x + x, m_radius.y + y);
}

private :

sf::Vector2f m_radius;
};

graphics-shape-ellipse

Сглаживание фигур

Нет каких-то функций для сглаживания конкретной фигуры. Если вы хотите получить сглаженные края фигур, то необходимо включить глобальное сглаживание на этапе создания окна. Это делается при помощи соответствующего атрибута структуры sf::ContextSettings.

sf::ContextSettings settings;
settings.antialiasingLevel = 8;

sf::RenderWindow window(sf::VideoMode(800, 600), «SFML shapes», sf::Style::Default, settings);

graphics-shape-antialiasing

Помните, что сглаживание зависит от видеокарты, которая может либо не поддерживать его, либо эта опция может быть отключена в настройках драйвера.

Источник

Часть 1.

«Нет толстых женщин, есть маленькая одежда» — говорила знаменитая Фаина Раневская.

Эту статью я пишу для женщин с непростыми формами, чтобы они могли правильно подобрать свой гардероб.

Можно скорректировать любую фигуру, благодаря феномену нашего зрения: скрыть недостатки и подчеркнуть достоинства.

Для этого необходимо научиться правильно пользоваться цветом, рисунком и линиями.

1. С помощью линий.

* Продольные и поперечные линии.

Бытует устойчивое мнение, что горизонтальные линии полнят, а вертикальные стройнят.

Не все так просто.

И горизонтальные, и вертикальные линии могут как полнить, так и стройнить. 

Все зависит от таких факторов, как ширина полос, их распределенность, цвет, наличие других элементов одежды рядом или поверх полосатой вещи, пропорции и масштаб самой модели и т д.

Но кое-какие зрительные иллюзии все-таки есть:

— вертикальная полоса выглядит длиннее горизонтальной;

— прямоугольник, заполненный поперечными полосами, кажется выше и уже, чем прямоугольник с продольными полосами.

Количество заполняющих полос также имеет значение:

малое количество горизонтальных полос приведет к зрительному расширению прямоугольника (а малое количество вертикальных — вытянет).

На фигуре это выглядит так:

Фигура с частыми поперечными линиями кажется выше и уже, чем фигура с частыми продольными линиями. Таким образом, частые продольные полосы увеличивают видимую ширину, а поперечные, наоборот, вытягивают.

В то же время редкие продольные линии могут визуально уменьшить ширину и увеличить высоту, а редкие поперечные сделать фигуру шире.

К случаю расширения вертикальными линиями относится также плиссированная одежда (плиссировка = частые линии, именно поэтому она не рекомендуется, например, при широких бедрах) и юбки с частыми клиньями.

А вот брюки со стрелками всегда делают ноги стройнее. Стрелку можно с таким же успехом заменить узкой одиночной полоской.

Если фигура, заполненная поперечными полосами, ограничивается сверху и снизу полосами темными, она кажется выше.

На примере юбок похожей длины:

Полосы могут быть расположены неравномерно, и тогда могут возникать различные зрительные иллюзии.

Например: при плавных переходах от узких промежутков к более широким, фигура вытягивается.

* Диагональные линии

Если задача заключается в том, чтобы сделать фигуру стройнее, лучше использовать диагональные полосы. Они более динамичны и создают ощущение движения, а на трехмерной фигуре выглядят как плавные кривые – взгляд по ним скользит дольше, что визуально удлиняет фигуру.

Поэтому для девушек с размером плюс предпочтительней неровные линии низа юбок, ассиметричные края кардиганов, блузы спадающие с одного плеча, драпировки по косой.

Основной принцип: где линии сходятся — уже, где расходятся — шире.

На этом примере видно как вершина угла направленная на линию талии сужает её и расширяет грудь, одновременно подчёркивая на контрасте бёдра. А на рисунке справа угол, направленный на бёдра, сужает их, расширяя линию талии.

На фото внизу слева мы видим поперечные полосы, которые расширяют бёдра девушки из-за своей ширины и разной величины, а на фото справа полосы с большим промежутком за счёт того, что меняют своё направление в районе бёдер, эти бёдра сильно сокращают, плюс ещё асимметрия низа юбки усиливает этот эффект.

* Кривые линии

Всегда создают объём.

Поэтому добавляем их там, где необходимо расширить и увеличить фигуру.

2. С помощью цвета

Иллюзия эта довольно проста и состоит в том, что при разделении одежды на части, выделенные разными цветами, можно добиться эффекта стройности фигуры.

Светлое на тёмном, кажется больше, чем тёмное на светлом. Светлое, как бы захватывает тёмный фон.

* На этой иллюзии основано убеждение, что тёмные цвета стройнят, а светлые полнят.

Коррекцию светом можно использовать не только для того, чтобы скрыть лишние килограммы, но и чтобы сбалансировать фигуру.

Например, женщине с типом фигуры груша, просто показано носить в верху светлую одежду, а внизу – темную. Так крупные бедра визуально уменьшатся, а верх визуально увеличиться, наступит баланс, фигура будет более гармоничная и привлекательная.

* Неяркие, холодные, более темные цвета визуально уменьшают объем. Яркие, светлые, теплые оттенки – расширяют.

Следите, чтобы сужающие оттенки попали на места, более полные, чем вам бы хотелось, а полнящие цвета на худые области.

*Иллюзия стройности и высоты — одна цветовая гамма .

Если хотим, чтобы ноги были длиннее — обувь, колготки и юбка должны быть одного цвета.

3. С помощью рисунка

Любое заполненное деталями пространство выглядит больше и объёмнее однотонного!

Если взять за основу, что крупный рисунок полнит, то следовательно мелкий должен стройнить, однако это далеко не так.

Читайте также:  Какие вещества имеют металлические свойства

Здесь включается другой закон зрительных иллюзий – усиление противоположности.

Оранжевые круги одинаковые, но тот, что среди маленьких, кажется крупнее.

Так и крупная женщина в платье в мелкий цветочек будет еще крупнее.

Полным дамам нужно выбирать рисунок средней величины.

Остальным в зависимости от задачи – там, где надо увеличить – рисунок по-крупнее, там, где уменьшить – по меньше.

Как это работает?

В этом образе девушка, надев вещи в обтяжку, только подчеркнула большой объем своей фигуры, а справа она же, надев просторный кейп, выделила контрастным объёмным верхом вполне нормальные ножки, и вот в целом девушка выглядит более изящной.

* Контрастный рисунок

Под контрастом мы понимаем большую разницу между свойствами цвета. Так наивысший контраст между светлым и темным – черное и белое.

Это очень яркое и сдержанное сочетание, но весьма опасное в искажение фигуры:

неудачная коррекция будет на виду.

Белое кружево или частый орнамент на темном фоне сильно расширяют пространство. Если белый рисунок расположен горизонтально, то место расположения кажется более широким, чем есть на самом деле.

Вертикально расположенный белый рисунок, обрамленный черным фоном, делает фигуру стройнее.

Черный ажур на белом меньше расширяет, чем белый на черном, но относительно однотонного черного – полнит.

* Леопард

Классическое леопардовое платье в мелкую, продолговатую, темно коричневую пятнышку на светло коричневом фоне.

Пятнышки организованы вертикально, к тому же прослеживаются более светлые и более темные вертикальные полосы на фоне. Чаще всего контраст между пятнами и фоном не большой.

Такая леопардовая расцветка платья стройнит.

Выраженный эффект будет колебаться от величины пятен и их контраста с фоном. Более крупный или контрастный рисунок будет меньше стройнить.

Тигровые платья так же обладают эффектом уменьшения объема, так как полоски тигра больше напоминают длинный острый угол, а его мы рассмотрели выше.

* Абстракция

Мелкие ограниченные по площади четким контуром пятна, организованные вертикально – стройнят.

Если фон светлый, рисунок теплый и достаточно крупный, то наблюдается эффект расширения.

Полнит и очень контрастный ближе к крупному рисунок из пятен.

* Размытые пятна

Такая раскраска делают образ туманным, а контуры фигуры размытые.

В светлых и даже средних расцветках – это полнит.

Не яркие размытые пятна, на темном фоне склоняются к эффекту сужения, за счет преобладания стройнящего цвета, но, тем не менее, этот рисунок будет сужать меньше однотонных темных, холодных тканей.

В одной из следующих статей я опишу, как можно корректировать фигуру с помощью пропорций верха и низа костюма, фактуры ткани и деталей одежды.

Если эта статья оказалась для вас полезной и интересной, жмите «палец вверх» ???? и подписывайтесь на мой канал, чтобы узнать ещё больше интересного и нового из мире шитья.

Все вопросы пишите на почту elena-antropova@inbox.ru

Источник

Почти всех нас не устраивает наше телосложение. Люди со спасательным кругом на талии пытаются скинуть его, люди же типа меня все время думают как бы поднабрать.

Физиологи выделяют 3 основных типа телосложения:

Эктоморф (длинный и худой — запястье не превышает 16ти сантиметров)

Мезоморф (сын маминой подруги, у которого все, как по маслу)

Эндоморф (настолько уверенный в себе парень, что даже лифт под ним прогибается больше, чем под соседями)

Можно ли изменить свое телосложение? ДА!

Можно ли изменить свой тип фигуры? НЕТ!

Эмм… Что ты сейчас сказал? — спросите вы.

На самом деле мы можем добиться всего что только пожелаем, но придется учитывать особенности своего организма. Сейчас распишу питание, режим и программу тренировок для каждого типа фигуры. Если вы желаете измениться, читайте дальше. Но учтите — нужно будет над собой поработать. Если вам это не интересно, можете продолжать искать волшебную таблетку, пить чай для похудения и страдать ерундой. Если ваша лень сильнее ваших желаний, закрывайте статью.

Эктоморф.

Чрезмерно быстрый обмен веществ придется глушить. Знаю, что кушать охота всегда, сам такой. Но сокращаем приемы пищи до 3х основных, добавляем 1 перекус, максимум 2. Постепенно нужно придти к 3м мега-сытным приемам. Уменьшая метаболизм и увеличивая вместительность желудка, вы запускаете процесс анаболизма.

Добавляем 2-3 интенсивных, но коротких тренировки в неделю.

10 минут разминки, повышаем давление до рабочего — около 120ти.

40-50 минут самой тренировки. Стараемся делать только базу, раскачивая самые крупные мышцы в организме — они нам нужны для разгона анаболизма (построение мышечной ткани из более простых химических элементов). Нас интересует присед, становая тяга, жим лежа. Эти упражнения выполняются в первой половине тренировки, вторую часть качаем более маленькие группы мышц.

10 минут заминки. Не сделаете — пожалеете об этом завтра. Снижаем риск получения травмы и отложения солей в суставах. 1-2 дня отдыха, максимально ленивый образ жизни и долгий сон, есть время днем — спите. Организм растет во время сна.

Обеспечив себя тяжелой тренировкой, переизбытком калорий и длительным отдыхом, вы подстегнете выработку тестостерона, разгоните анаболизм, и останется только работать в том же духе и смотреть на увеличение цифры на весах.

Сергей Уваров

Читайте также:  Какими свойствами обладают вещества с ковалентными полярными связями

Эндоморф.

Разгоняем свой медленный обмен веществ. Увеличиваем приемы пищи до бесконечности, в идеале 6-7 маленьких порций. Хотите похудеть — придется забыть о пиве и тортиках перед сном. Не представляете свою жизнь без сладкого — ешьте свои плюшки до 15:00, потом ни-ни.

Добавляем тренировки. Если интересует агрессивный способ похудения, стараемся повысить катаболизм (расщепляет сложные вещества на более простые), но учтите, что мышцы так же горят.

Хотите сжечь жирок, но остаться с бицепсом, тогда повышаем анаболизм. 3-4 оооочень долгих тренировки в неделю. Маленький вес, много повторений, не больше 1 минуты отдыха между подходами — это ваш выбор. Не забудьте про воду. Выпивая 2-3 литра чистой воды, вы успокоите организм и он перестанет откладывать излишки, словно медведь перед зимой. Да, именно воды, а не чая, кофе или сока.

Ярослав Брин

Мезоморф.

Поздравляю! Вам повезло от природы. Первые 30-40 лет люди с этим типом телосложения выглядят отлично. Потом появляется всеми любимый спасательный круг, но добавив тренировки в свою жизнь, можно оттянуть его появление еще лет на 20-30.

Что ж, думаю теперь вы с легкостью не только определите тип фигуры, но и сможете составить план тренировок, режим, питание. Хотите себя изменить? Все в ваших руках!

Если статья оказалась интересной, не забудьте поставить лайк и подписаться))

Источник

Один философ сказал, что многие беды человечества начинаются с того, что глядя в зеркало, человек собой не доволен.

Как используя особенности нашего органа зрения, можно исправить свою фигуру.  Оказывается, наш глаз можно обмануть, эти оптические феномены можно использовать  для того, чтобы выглядеть привлекательнее. Любая женщина с любой фигурой может стать красивее.

Для того, чтобы изменить пропорции фигуры с помощью  одежды,  необходимо научиться правильно пользоваться цветом, рисунком и линиями.

Цвет

Самый простой способ коррекции фигуры с помощью черного и белого – игра света и тени. Известно, что  белый полнит, а черный стройнит . Это еще мы знаем из геометрии, что черный предмет кажется визуально дальше, а следовательно и визуально меньше, белый кажется более приближенным к нам, значит —  визуально больше.

Какой из квадратов вам кажется больше?

Поэтому полным людям советуют не носить светлых оттенков. Но жизнь, это не только белое и черное, мир так богат на краски.

У каждого цвета есть темные, светлые и средние оттенки. Они тоже подчиняются законам большего или меньшего отражения. Светлые оттенки любых цветов будут увеличивать габариты по отношению к темным оттенкам.

Коррекцию светом можно использовать не только для того, чтобы скрыть лишние килограммы, но и чтобы сбалансировать фигуру. Например, женщине с типом фигуры груша, просто показано носить в верху светлую одежду, а внизу – темную. Так крупные бедра визуально уменьшатся, а верх визуально увеличиться, наступит баланс, фигура будет более гармоничная и привлекательная.

Рисунок

Второй способ коррекции фигуры – это рисунок. Он имеет особе значение. Крупный рисунок укрупняет фигуру. Но здесь тоже не так все однозначно, как могло бы показаться.

Если взять за основу, что крупный рисунок полнит, то следовательно мелкий должен стройнить, однако это далеко не так. Здесь включается другой закон зрительных иллюзий – усиление противоположности

Оранжевые круги одинаковые, но тот, что среди маленьких, кажется крупнее. Так и крупная женщина в платье в мелкий цветочек будет еще крупнее

 

Поэтому полным дамам нужно выбирать рисунок средней величины, а остальным в зависимости от задачи – там, где надо увеличить – рисунок по-крупнее, там, где уменьшить – по меньше.

Если рисунок контрастный и крупный

Под контрастом мы понимаем большую разницу между свойствами цвета. Так наивысший контраст между светлым и темным – черное и белое. Это очень яркое и сдержанное сочетание, но весьма опасное в искажение фигуры.

Во-первых, не большее количество белого или темного на противоположном фоне привлекает внимание, поэтому и удачная, и не удачная коррекция будет на виду.

Стоит знать, что белое кружево или частый орнамент на темном фоне сильно расширяют пространство. Если белый рисунок расположен горизонтально, то место расположения кажется более широким, чем есть на самом деле.

 для сравнения  

Вертикально расположенный  белый рисунок, обрамленный черным фоном, делает фигуру стройнее

   

Черный ажур на белом меньше расширяет, чем белый на черном, но относительно однотонного черного – полнит.

Линии

Коррекция продольными и поперечными линиями. При помощи горизонтальных и вертикальных линий на одежде можно не только оптически сузить или расширить силуэт , но даже стать чуточку выше или ниже.

Споров очень много полнит ли горизонтальная полоска.  Вообще, смотря какая полоска – ее толщина, частота, ритм.

В случае сложного ритма возникают совсем интересные явления — фигура искажается в соответствии с изменением частоты линий. Смотрим картинку:

 

Это далеко не все способы, с помощью которых можно скорректировать фигуру одеждой. Пользоваться всеми этими способами нужно умело. Подробнее можно узнать на моем бесплатном он-лайн тренинге  «Магия женской маскировки: как при помощи одежды повысить свой статус и получить желаемую должность, сменить окружение и перспективно выйти замуж» здесь

Источник