
29.07.2022, 11:16
|
|
Познавший АНТИЧАТ
Регистрация: 29.09.2018
Сообщений: 1,292
С нами:
4012500
Репутация:
138
|
|
Сообщение от AdCKuY_DpO4uLa
Как отрисовать 3D круг при помощи imgui
Вот так делал,old говнокод
C++:
Код:
void
draw_3d_circle
(
ImDrawList
*
dl
,
Vector pos
,
float
rad
,
ImVec4 clr
)
{
Vector enpos
;
float
screen
[
2
]
,
screen2
[
2
]
{
}
;
float
step
=
M_PI
*
2.f
/
2047
;
enpos
.
x
=
rad
*
cos
(
rot
)
+
pos
.
x
;
enpos
.
y
=
rad
*
sin
(
rot
)
+
pos
.
y
;
enpos
.
z
=
pos
.
z
;
Vector2D scr
=
functions_helper
::
WorldToScreen
(
Vector
(
enpos
.
x
,
enpos
.
y
,
enpos
.
z
)
)
;
if
(
scr
.
x
&&
screen2
[
0
]
!=
0
)
{
dl
->
AddLine
(
ImVec2
(
scr
.
x
,
scr
.
y
)
,
ImVec2
(
screen2
[
0
]
,
screen2
[
1
]
)
,
ImGui
::
GetColorU32
(
clr
)
,
15.f
)
;
}
screen2
[
0
]
=
scr
.
x
;
screen2
[
1
]
=
scr
.
y
;
}
}
.
.
.
draw_3d_circle
(
ImGui
::
GetBackgroundDrawList
(
)
,
local
.
GetAbsOrigin
(
)
,
70
,
ImVec4
(
1.0f
,
1.0f
,
1.0f
,
1.0f
)
)
;
|
|
|