Форум программистов, компьютерный форум, киберфорум
SFML
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/25: Рейтинг темы: голосов - 25, средняя оценка - 4.60
0 / 0 / 0
Регистрация: 16.12.2014
Сообщений: 6
1

C++ / SFML контур текста и тень

03.01.2016, 00:43. Показов 4518. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Приветствую. Столкнулся с такой проблемой - не знаю как сделать текст с контуром. Использую SFML Text.
Пробовал менять размер и выводить дважды - для первой буквы срабатывает, но потом идёт смещение. Жирный шрифт под обычным - то же самое. Единственное что пришло в голову - это специальная функция, которая будет брать каждую букву, увеличивать, смещать по координатам и рисовать под текстом, но не слишком ли это будет?
Может есть способ по проще...
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.01.2016, 00:43
Ответы с готовыми решениями:

Для Web-сайта: Различные эффекты текста. Тень, контур и т.д
Подскажите что изучить, чтобы можно было получать изображения с красивыми надписями на них, под...

Тень у текста
люди добрые помогите, пожалуйста, как сделать тень у текста? Если можно пример подробный, хотя...

Тень Текста
как пожно получить такое отражение текста,через text-shadow такого эффекта вроде бы не достигнуть?

Контур текста в Canvas
Добрый день. Вопрос заключается в следующем: необходимо с помощью свойств Canvas написать слово,...

6
Неэпический
17870 / 10635 / 2054
Регистрация: 27.09.2012
Сообщений: 26,737
Записей в блоге: 1
03.01.2016, 00:52 2
Добавлено через 3 минуты
Цитата Сообщение от Godemar Посмотреть сообщение
Столкнулся с такой проблемой - не знаю как сделать текст с контуром.
С каким контуром?
0
0 / 0 / 0
Регистрация: 16.12.2014
Сообщений: 6
03.01.2016, 00:59  [ТС] 3
С каким контуром?
Обычный контур "обводка". Чтобы видно было буквы поверх картинок. Иначе они сливаются фоном иногда.
0
Неэпический
17870 / 10635 / 2054
Регистрация: 27.09.2012
Сообщений: 26,737
Записей в блоге: 1
03.01.2016, 01:45 4
Когда мне нужен был текстурированный текст,
я залез в исходники SFML,
взял там реализацию sf::Text и немного переделал.
Может быть Вам тоже это стоит проделать?
0
0 / 0 / 0
Регистрация: 16.12.2014
Сообщений: 6
03.01.2016, 02:42  [ТС] 5
Цитата Сообщение от Croessmah Посмотреть сообщение
Когда мне нужен был текстурированный текст,
я залез в исходники SFML,
взял там реализацию sf::Text и немного переделал.
Может быть Вам тоже это стоит проделать?
Для меня сложновато будет. Думаю использовать как картинку + маску на фон.

Или сделаю просто смещение, получится как тень, либо смещением по всем 4рем направлениям.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
    while (window.isOpen())
    {
        while (window.pollEvent(event))
        {
            if (event.type == sf::Event::Closed)
                window.close();
        }
        text.setPosition(text.getPosition().x + 2, text.getPosition().y);
        text.setCharacterSize(60);
        text.setColor(Color::Red);
        window.clear(Color::White);
        window.draw(text);
        text.setPosition(text.getPosition().x - 4, text.getPosition().y);
        window.draw(text);
        text.setPosition(text.getPosition().x + 2, text.getPosition().y + 2);
        window.draw(text);
        text.setPosition(text.getPosition().x, text.getPosition().y - 4);
        window.draw(text);
        text.setPosition(text.getPosition().x, text.getPosition().y + 2);
        text.setColor(Color::Black);
        window.draw(text);
        window.display();
}
Добавлено через 8 минут
Может кому пригодится, а то я пол дня убил, вот весь код тестовой программы:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#include <SFML/Graphics.hpp>
using namespace sf;
int main()
{
    RenderWindow window(VideoMode(1024, 768), "TXT TEST");
    window.setFramerateLimit(30);
    Text text;
    Font font;
    font.loadFromFile("tolsh.TTF");
    text.setFont(font);     
    Event event;
    text.setString("проверка \n\tghjdasjdla;sjdl \n\nn\n\n\n\\n\n asdasdsadasdsadsadsadas");
    while (window.isOpen())
    {
        while (window.pollEvent(event))
        {
            if (event.type == sf::Event::Closed)
                window.close();
        }
        text.setPosition(text.getPosition().x + 2, text.getPosition().y);
        text.setCharacterSize(60);
        text.setColor(Color::Red);
        window.clear(Color::White);
        window.draw(text);
        text.setPosition(text.getPosition().x - 4, text.getPosition().y);
        window.draw(text);
        text.setPosition(text.getPosition().x + 2, text.getPosition().y + 2);
        window.draw(text);
        text.setPosition(text.getPosition().x, text.getPosition().y - 4);
        window.draw(text);
        text.setPosition(text.getPosition().x, text.getPosition().y + 2);
        text.setColor(Color::Black);
        window.draw(text);
        window.display();
    }
}
0
32 / 24 / 7
Регистрация: 01.08.2014
Сообщений: 115
08.01.2016, 05:31 6
Текст чёрным цветом перевести в текстуру (sf::RenderTexture), к текстуре применить blur. Для плавного контура.
0
0 / 0 / 0
Регистрация: 16.12.2014
Сообщений: 6
08.01.2016, 14:51  [ТС] 7
Текст чёрным цветом перевести в текстуру (sf::RenderTexture), к текстуре применить blur. Для плавного контура.
А нельзя ли поподробнее? А то я поигрался с RenderTexture но так ничего и не вышло
0
08.01.2016, 14:51
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.01.2016, 14:51
Помогаю со студенческими работами здесь

Тень для текста
Есть ли возможность добавить тень вокруг текста методами css?

Как убрать тень текста
Добрый день. Переделываю сайт, и не могу разобраться в css. Там где то прописано чтоб буквы...

Тень текста нажатой кнопки
Есть TabHost. В нём несколько табов. На каждом табе чёрный текст с белой тенью. Когда таб нажат...

Тень текста при использовании filter в IE
Привет. Помогите, пожалуйста, решить проблему с тенью... Есть несколько блоков с текстом,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru