HomeCalculatorsMathVectorsVector Projection Calculator
Math calculator

Vector Projection Calculator

Calculate vector projections in 2D or 3D. Explore worked steps, numerical limits and verified results. Share inputs or export the complete calculation.

Instant result
Result
—

Enter values to calculate.

Inputs—
Mode—
Formula—
Trust summary CVP VERIFIED · CVP protocol 1.0.0-proposed · Core assurance · all published modes
Input interpretation
Enter values to calculate.
Result
—
Verified scope
all published modes
Assurance
Core
Declared partition coverage
PASS · 10/10 declared partitions (magnitude, normalize, add, sub, dot, cross, angle, projection, triple, invalid-domain) · Matrix
Known limitations
  • Core CVP does not include live graph, viewport, or pointer interaction.
Model
The vector projection of u onto v.
Scope
Euclidean R²/R³
Verification
Engine tested · Source checked · v1.8.0 · CVP VERIFIED · CVP protocol 1.0.0-proposed · Core assurance · all published modes· View Manifest · CVP overview · Specification
Versions
Calculation 1.8.0 · CVP protocol 1.0.0-proposed · Evidence 2026-10-29.math-uuce-fields-v1
Verification revision
2026-10-29.math-uuce-fields-v1 · 7/7 property · digest fcf6780d8c02
Legacy regression
11/11 tests · Production surface contract 6/6
Trust layers
Verification VERIFIED · Production CURRENT · Overall CVP state: VERIFIED under CVP 1.0.0-proposed
Reference
O1 model · O2 expected_values · O2 numerical_behavior
Interfaces
PASS · UI (SSR) / REST / MCP — ui-ssr is query-result HTML, not a live browser session. Error-path engine·REST·MCP 2/2 (status, code, calculation_version). SSR compared on URL-canonical requested calculations; empty query is idle (not an error) and JSON-typed object/array inputs are REST/MCP-only.
Supplemental domain review
Not performed
Named expert review
Not performed
CVP suite
387/387 golden · 4/4 CVP boundary · 28/28 invalid · 7/7 property · 4/4 metamorphic · 6/6 cross-interface · 2/2 cross-calculator · 6/6 CVP contract · Manifest
Evidence
3 legacy golden · 2 legacy boundary · legacy regression suite · 387/387 oracle-backed golden · 28/28 invalid · Artifact integrity PASS
This calculator CURRENT · Public schema 1.8.0 matches · Semantic contract ✓ · Production attested · Public/cache ✓ · Origin ✓
Semantic contract
PASS
Full verification

Manifest identity, reference classes, interfaces, suite, and production records.

Formulas

Core equations used by this calculator.

Vector projectionproj_v u = ((u · v) / |v|²) v
Scalar factor(u · v) / |v|²
iSame engine as /vector. Default (2, 2, 0) onto (1, 0, 0) → (2, 0, 0). Not a second engine.

How to use

1

Enter u and v

uz and vz are optional and default to 0. v must not be zero. (2, 2) onto (1, 0) is (2, 0).

2

Read the projected vector

The result is parallel to v. Perpendicular u gives the zero vector. The scalar triple product is /calc/math/vector-triple.

Example calculations

Common configurations with formula and result.

ϟ

Onto the x-axis

u = (2, 2, 0), v = (1, 0, 0)

((2·1)/1) (1, 0, 0)
(2, 0, 0)
ϟ

Perpendicular

u = (0, 1, 0), v = (1, 0, 0)

(0/1) (1, 0, 0)
(0, 0, 0)

Vector Projection calculator specification

Version 1.8.0 · Engine tested

Calculation status

Review policy · Evidence

Definition
proj_v u = ((u · v) / |v|²) v. This page is mode=projection on math.vector. uz and vz default to 0. Zero v is invalid. Not a second engine. Not CAS.
What it calculates
The vector projection of u onto v.
Inputs
  • ux
  • uy
  • uz?
  • vx
  • vy
  • vz?
Outputs
  • px
  • py
  • pz
  • scale
Formula
proj_v u = ((u · v) / |v|²) v
Assumptions
  • Euclidean R²/R³
  • Absent z defaults to 0; explicit empty/null is invalid
  • Result is parallel to v
  • Not a matrix
  • Not CAS
Units
  • Same component units as u; scale dimensionless when u and v use the same units
Boundary conditions
  • missing ux, uy, vx, or vy → MISSING_REQUIRED_INPUT
  • zero v → INVALID_INPUT
  • unknown mode → INVALID_MODE
Example
u=(2,2,0) v=(1,0,0) → (2, 0, 0)
Validation cases

3 published on this page · 11/11 tests · Production surface contract 6/6 · View evidence

  • ux=2 uy=2 vx=1 vy=0 → px=2 py=0 pz=0
  • ux=0 uy=1 vx=1 vy=0 → px=0 py=0 pz=0
  • ux=1 uy=0 vx=0 vy=0 → INVALID_INPUT
Sources
  • ISO 80000-2:2019 Quantities and units — Mathematics
    Supports: Mathematical symbols and notation. This standard is not numerical verification or an endorsement of this implementation.
  • Gilbert Strang, Calculus — Chapter 11: Vectors and Matrices (MIT OpenCourseWare) — §§11.1–11.3 Vectors, Dot Products, Projections and Cross Products
    Supports: Vector components and magnitudes, dot product and angle/projection relations, and cross product/determinant orientation and area. Projecting a point displacement onto the unit normal to Ax+By+C=0 gives distance |Ax₀+By₀+C|/sqrt(A²+B²); this planar expression is derived from the projection formula. Mathematical reference only; not implementation validation or an endorsement of CalculatorX.
Calculation version
1.8.0

Background

Interpretation and common distinctions.

What does this vector projection calculator compute?

proj_v u = ((u · v) / |v|²) v.

The published formula or method is proj_v u = ((u · v) / |v|²) v. The following references support the stated mathematics or method:

  • Gilbert Strang, Calculus — Chapter 11: Vectors and Matrices (MIT OpenCourseWare): Vector components and magnitudes, dot product and angle/projection relations, and cross product/determinant orientation and area. Projecting a point displacement onto the unit normal to Ax+By+C=0 gives distance |Ax₀+By₀+C|/sqrt(A²+B²); this planar expression is derived from the projection formula. Mathematical reference only; not implementation validation or an endorsement of CalculatorX.

Which inputs and limits should you check?

Follow the input domain, units, branch or solve direction, and rounding policy in the specification. Preserve exact outputs and any additional candidates or warnings.

The worked example uses u = (2, 2, 0), v = (1, 0, 0) with ((2·1)/1) (1, 0, 0). Compare it with the Example calculations and the complete result for the same inputs.

How can you verify and cite this result?

CalculatorX is responsible for this page. The mathematical references above explain the model; implementation checks and their scope are documented separately in the math.vector v1.8.0 Evidence and capability contract. Read the displayed verification and production state together with the specification's numerical limits.

Use the clean calculator URL to cite the tool. A shared input link identifies a particular calculation. Content updates, numerical verification, and domain reviews have separate dates and scopes.

Numerical range, precision and figures

Inputs accept finite decimals, including scientific notation. Required x/y components cannot be empty. z defaults to zero only when absent from a request; an explicitly empty z is invalid. Nonzero inputs and every reported numeric field must be normal binary64 (magnitude at least 2⁻¹⁰²²). Overflow or a nonzero result below this range returns NUMERIC_RANGE; rescale the vectors. Decimal text which rounds to zero returns NUMERIC_UNDERFLOW instead of silently becoming zero.

Addition, subtraction, dot, cross and scalar triple products use exact dyadic intermediates followed by binary64 rounding. Projection uses exact intermediate ratios. Magnitude uses scaled hypot; normalization and the atan2 cross/dot angle are approximate. Results retain binary64 precision. Reference comparisons use relative tolerance 2×10⁻¹² (or 8 ULP), with absolute 2×10⁻¹⁰ degrees for ordinary angles and 2×10⁻¹³ for cosine. Cancellation can make relative component error sensitive; directions are undefined at zero and sensitive near zero. This is bounded vector arithmetic, not a general arbitrary-precision or symbolic system.

Units must be consistent across components: magnitude, sum, difference and projection retain component units; dot/cross products square them; the scalar triple product cubes them. Normalized components and projection scale are dimensionless. Angles include degrees, radians and cosine. Zero u can be projected onto nonzero v; normalizing zero, finding its direction angle, or projecting onto zero v is invalid.

Arrow figures show only the xy plane when every relevant z is exactly zero; cross/triple and 3D results use complete text and worked results. Arrows share a linear scale. Nonzero arrows smaller than a pixel receive a “below plot resolution” label instead of a false zero marker.

Interactive calculations run locally. Shared links contain the entered components and may be server-rendered. Exported JSON/CSV preserves the entered inputs, full numeric result and calculation version. Treat shared links and downloaded files as copies of your data.

Frequently asked questions

Key distinctions behind the calculation.

Is this a second vector engine?

No. It is mode=projection on math.vector, the same engine as /calc/math/vector.

Is this the scalar projection?

This page returns the vector proj_v u. The scalar factor is (u · v) / |v|², also in the result as scale.

What if v is zero?

Cannot project onto the zero vector. The engine returns INVALID_INPUT.

Where does this run?

Locally in the browser by default. REST and MCP call the same vector engine.