View the figure from a slight elevation and refine the leg-machine rollers
The default camera pitches down 10 degrees, so the floor reads as a plane (drawn as a rectangle) and near/far contacts straddle it. Elevation is pure presentation - IK pins solve in the flat authored view and the posed body tilts, the same pattern as the orbit, so authored canvas targets never go out of reach. The leg-extension roller moves up onto the shin above the ankle and the leg-curl roller tucks under the heel. Fixtures and reference test values regenerated for the pitched camera. Claude-Session: https://claude.ai/code/session_01LEoff8bXGBS83tK1c55Mf7
This commit is contained in:
@@ -109,10 +109,13 @@ struct ExerciseFigureView: View {
|
||||
|
||||
let geo = figure.geometry(at: time)
|
||||
|
||||
// Ground line.
|
||||
stroke(&ctx, [CGPoint(x: 16, y: Self.groundY + 4),
|
||||
CGPoint(x: Self.designSize.width - 16, y: Self.groundY + 4)],
|
||||
color: .figureGround, width: 3)
|
||||
// The floor plane under the elevated camera: a rectangle straddling the
|
||||
// ground line (a horizontal line is the pitch-zero degenerate case).
|
||||
let floorHalf = MotionSolver.floorHalfDepth * sin(figure.timeline.pitch * .pi / 180)
|
||||
let floor = CGRect(x: 16, y: Self.groundY + 4 - floorHalf,
|
||||
width: Self.designSize.width - 32, height: 2 * floorHalf)
|
||||
ctx.stroke(Path(roundedRect: floor, cornerRadius: 3), with: .color(.figureGround),
|
||||
style: StrokeStyle(lineWidth: 3, lineCap: .round, lineJoin: .round))
|
||||
|
||||
// Equipment behind the figure: scene shapes and cables.
|
||||
drawBackgroundProps(&ctx, geo)
|
||||
|
||||
Reference in New Issue
Block a user