MayaFlux 0.4.0
Digital-First Multimedia Processing Framework
Loading...
Searching...
No Matches

◆ arc_path()

MAYAFLUX_API std::vector< glm::vec2 > MayaFlux::Kinesis::arc_path ( glm::vec2  center,
float  radius_x,
float  radius_y,
float  angle_start,
float  angle_end,
uint32_t  segments 
)

Sample a circular arc as ordered NDC positions.

Produces segments + 1 points along the arc from angle_start to angle_end, suitable as path input to stroke_slider or any other function consuming a span<const glm::vec2> path.

Parameters
centerArc center in NDC.
radius_xHorizontal radius in NDC units.
radius_yVertical radius in NDC units (use == radius_x for a circle).
angle_startStart angle in radians from +X, CCW.
angle_endEnd angle in radians from +X, CCW.
segmentsNumber of segments; produces segments+1 points.

Definition at line 203 of file Geometry2D.cpp.

208{
209 segments = std::max<uint32_t>(segments, 1U);
210 const float step = (angle_end - angle_start) / static_cast<float>(segments);
211
212 std::vector<glm::vec2> out;
213 out.reserve(static_cast<size_t>(segments) + 1);
214 for (uint32_t i = 0; i <= segments; ++i) {
215 const float a = angle_start + static_cast<float>(i) * step;
216 out.push_back(center + glm::vec2(radius_x * std::cos(a), radius_y * std::sin(a)));
217 }
218 return out;
219}
size_t a

References a.