C++ ImGui Curve

На самом деле я Zodiak
Участник
Участник
Статус
Оффлайн
Регистрация
22 Дек 2020
Сообщения
1,096
Реакции
199
Как можно отрисовать кривую линию опираясь на 3 точки? Для сглаживания скелетов
1676363516359.png

Сам пока нашел только этот прикол
Пожалуйста, авторизуйтесь для просмотра ссылки.
 
Последнее редактирование:
Как можно отрисовать кривую линию опираясь на 3 точки? Для сглаживания скелетов
Посмотреть вложение 238623
Сам пока нашел только этот прикол
Пожалуйста, авторизуйтесь для просмотра ссылки.

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

 
Curves:
Expand Collapse Copy
ImVec2 a( 200.f, 200.f );
ImVec2 b( 190.f, 225.f );
ImVec2 c( 200.f, 250.f );

ImGui::GetForegroundDrawList( )->PathClear( );
ImGui::GetForegroundDrawList( )->PathLineTo( a );
ImGui::GetForegroundDrawList( )->PathBezierQuadraticCurveTo( b, c );
ImGui::GetForegroundDrawList( )->PathStroke( ImGui::GetColorU32(ImColor(255, 255, 255).Value) );

PathBezierQuadraticCurveTo используется для 3 поинтов.
Для 4 поинтов можешь использовать PathBezierCubicCurveTo
 
Curves:
Expand Collapse Copy
ImVec2 a( 200.f, 200.f );
ImVec2 b( 190.f, 225.f );
ImVec2 c( 200.f, 250.f );

ImGui::GetForegroundDrawList( )->PathClear( );
ImGui::GetForegroundDrawList( )->PathLineTo( a );
ImGui::GetForegroundDrawList( )->PathBezierQuadraticCurveTo( b, c );
ImGui::GetForegroundDrawList( )->PathStroke( ImGui::GetColorU32(ImColor(255, 255, 255).Value) );

PathBezierQuadraticCurveTo используется для 3 поинтов.
Для 4 поинтов можешь использовать PathBezierCubicCurveTo
Я правильно понял что точка A - Это средняя точка между B и C ?
Ошибся, средняя это B
 
Последнее редактирование:
Жесть когда хожу жутко фпс ложится
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
зачем тебе скруглять грани у скелета ? А так возможное решение отправить рендер скелетов в другой поток.
Когда речь идет о EAC , второй поток создать нельзя
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Когда речь идет о EAC , второй поток создать нельзя
Ну когда ты можешь его скрыть я думаю это не проблемма, на ют да и просто в инете есть много примеров, надт только сделать свой метод.
 
Как можно отрисовать кривую линию опираясь на 3 точки? Для сглаживания скелетов
Посмотреть вложение 238623
Сам пока нашел только этот прикол
Пожалуйста, авторизуйтесь для просмотра ссылки.
bezier curve, очевидно-же, юзай этот-же прикол с гита

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

Жесть когда хожу жутко фпс ложится
ограничь количество прорисовываемых объектов имгуи хз (хуйню сморозил но ничё страшного)
 
Последнее редактирование:
в принципе, можно и схитрить.
если у тебя бекграунд одного цвета, то попробуй добавить фулл круги и совмести их так, что-бы получилось что-то типа кривой.
получилось уродливо но если постараться то можно и нормально сделать, а не за 2 минуты как я.
1676864604317.png

(сперва круги, потом линии, потом квадратики что-бы заполнить пустые пространства)
 
в принципе, можно и схитрить.
если у тебя бекграунд одного цвета, то попробуй добавить фулл круги и совмести их так, что-бы получилось что-то типа кривой.
получилось уродливо но если постараться то можно и нормально сделать, а не за 2 минуты как я.
Посмотреть вложение 239286
(сперва круги, потом линии, потом квадратики что-бы заполнить пустые пространства)
самый ёбнутый костыль который я видел за всю свою жизнь :roflanEbalo:
 
Назад
Сверху Снизу