1 か月前 · Jul 17, 2026 6:32 AM
A high-performance radar widget for Dear ImGui:
CPP
Vector2 WorldToRadar(Vector3 localPos, Vector3 targetPos, float localYaw, float radarRadius, float zoomScale) {
float dx = targetPos.x - localPos.x;
float dy = targetPos.y - localPos.y;
// Rotate relative to local player camera yaw
float rad = -localYaw * (3.14159265f / 180.0f);
float rotX = dx * cos(rad) - dy * sin(rad);
float rotY = dx * sin(rad) + dy * cos(rad);
rotX *= zoomScale; rotY *= zoomScale;
// Clamp to radar radius circle
float dist = sqrt(rotX * rotX + rotY * rotY);
if (dist > radarRadius) {
rotX = (rotX / dist) * radarRadius;
rotY = (rotY / dist) * radarRadius;
}
return { rotX, rotY };
}