Complex number rectangular to polar form
Rewrite a complex number by size and direction: 3 + 4i has a modulus of 5 and an argument of about 53.13°, so it reads 5∠53.13°. You also get the cosine-and-sine form. Free in your browser.
- Free
- Runs in your browser
- No sign-up
- Your data stays on your device
Run — free
Worked example
- Real
- 3
- Imag
- 4
- Modulus
- 5
- Argument deg
- 53.1301023542
- Argument rad
- 0.927295218
- Rectangular
- 3+4i
Complex numbers written in rectangular form a plus b i are natural for addition and for reading real and imaginary parts, but multiplication, division, powers, and roots are almost always simpler once the same number is written in polar or trigonometric form. This complex number rectangular to polar form calculator accepts the real part a and the imaginary part b, computes the modulus r as the Euclidean length of the vector from the origin to the point (a, b), and computes the principal argument with a two-argument arctangent so every quadrant is correct.
Rectangular, polar, and trigonometric form of a complex number
Any complex number z equals a plus b i can be identified with the point (a, b) in the complex plane. The rectangular form names the horizontal and vertical coordinates directly: a is the real part and b is the imaginary part. The polar form names the same point by distance from the origin and direction from the positive real axis.
The distance is the modulus r equals the square root of a squared plus b squared, written |z|. The direction is the argument theta equals arg of z, conventionally taken in the principal range from negative one hundred eighty degrees to positive one hundred eighty degrees, or from negative pi to pi in radians. Once r and theta are known, z may be written as r at angle theta, or in trigonometric form as r times cosine of theta plus i sine of theta.
Those identities are the foundation of De Moivre's theorem, of converting products into products of moduli and sums of arguments, and of finding roots as equally spaced rays on a circle. Students who only expand powers with the binomial theorem on a plus b i often make algebra mistakes that vanish after a correct rectangular-to-polar conversion.
When polar form makes the work easier
Algebra and precalculus classrooms use a complex number rectangular to polar form calculator so learners can check modulus and argument for arbitrary a and b without mixing up quadrants or degree versus radian mode on a hand calculator. Exam generators and LMS plugins need a deterministic oracle that marks the origin as a known special case instead of crashing or inventing a random angle. Failed validation does not consume balance.
Keep requests small, pin the rounded modulus and argument in tests, and you get reproducible polar and trigonometric forms for homework, grading, and edge workers without standing up symbolic math infrastructure of your own.
What you can do with it
Classroom and homework checks
Let students submit real and imag for z = a+bi and verify modulus, principal argument in degrees, and the trigonometric form string against textbook methods.
Phasors and engineering notebooks
Convert rectangular a+bi phasors to polar magnitude and phase before products and quotients without importing a full computer-algebra library.
FAQ
How do I convert a complex number from rectangular to polar form?
Send finite numbers real (a) and imag (b) for z = a+bi.
Which quadrant does the argument use?
The two-argument arctangent atan2(imag, real) places θ in the correct quadrant over (−180°, 180°] (or (−π, π] in radians), including axes.
What is the polar form of 3 + 4i?
Its modulus is 5, the square root of 3² + 4², and its argument is about 53.13°, measured from the positive real axis. So 3 + 4i is 5∠53.13° in polar form.
What happens with the complex number 0 + 0i?
Its modulus is 0 and its argument is set to 0° by convention, because no direction is defined at the origin. The result is clearly marked as the origin, so you know the angle carries no meaning.
Why is polar form easier for multiplying complex numbers?
In polar form you multiply the moduli and add the arguments, instead of expanding brackets. Powers and roots become just as simple, which is the idea behind De Moivre’s theorem.
Related tools
For developers — API access
Everything on this page is available programmatically. This section is for teams who want to wire it into their own systems; everyone else can just use the tool above.
API endpoint
Prefer to automate it? One authenticated POST creates the task; the result comes back by webhook or a signed link. The same capability also runs here on the web, by email and from Telegram — and soon from our app too.
Call it from your stack
curl -X POST https://api.kit.forhosting.com/trig/rectangular-to-polar-complex \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"real":3,"imag":4}'const res = await fetch("https://api.kit.forhosting.com/trig/rectangular-to-polar-complex", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"real": 3,
"imag": 4
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/trig/rectangular-to-polar-complex",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"real": 3,
"imag": 4
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/trig/rectangular-to-polar-complex", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"real":3,"imag":4}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"real":3,"imag":4}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/trig/rectangular-to-polar-complex", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"real": 3,
"imag": 4
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "trig.rectangular_to_polar_complex",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}The API is asynchronous: the call returns a task_id immediately and the result arrives by webhook. Polling is capped at 1 req/s per task.
Pricing
Published price — no tokens, no invented credits. A failed task is never charged.
Errors
| HTTP | Code | Meaning |
|---|---|---|
401 | unauthorized | Missing or invalid API key. |
402 | insufficient_balance | Your balance doesn't cover the task price. |
404 | unknown_type | That task type doesn't exist. |
429 | rate_limited | Too many requests. Use the webhook instead of polling. |
Technical notes
The response returns the argument in degrees and in radians, plus ready-to-copy polar and trigonometric display strings of the form r angle theta degrees and r times open parenthesis cosine of theta plus i sine of theta close parenthesis. The origin zero plus zero i is handled as a special case: modulus zero and argument zero degrees by convention, with an is_origin flag so clients do not treat an undefined angle as a silent failure.
Rectangular, polar, and trigonometric form of a complex number
This endpoint performs that conversion only: it does not raise z to a power and does not solve equations; it returns modulus, argument, and the two standard display strings so the next calculation can start from a verified polar representation.
Input contract, origin special case, and response fields
Example: real equals three and imag equals four yields modulus five and argument about fifty-three point one three degrees, because three-four-five is a classic right triangle in the first quadrant. Example: real equals negative one and imag equals zero yields modulus one and argument one hundred eighty degrees or negative one hundred eighty depending on the floating-point principal value of atan2 of zero and negative one, always on the negative real axis. POST a JSON body with two required finite numbers: real, the real part a of z equals a plus b i, and imag, the imaginary part b. Each field may arrive as a JSON number or as a numeric string; missing fields, empty strings, and non-finite values fail with invalid_input naming the field, and those failures are not billed. On success the body echoes real and imag rounded for stable display, reports modulus as a non-negative number, reports argument_deg and argument_rad for the principal argument, and sets is_origin to false for every non-zero z. The rectangular string rewrites a plus b i for teaching displays; polar_form uses the angle notation r angle theta degrees; trigonometric_form writes r open parenthesis cos of theta degrees plus i sin of theta degrees close parenthesis. The origin zero plus zero i is the documented special case: modulus is zero, argument_deg and argument_rad are zero by convention because arg of zero is otherwise undefined, is_origin is true, and both polar and trigonometric strings are simply zero. Pair the response with your own diagram code if you need a sketch of the ray; this endpoint returns numbers and strings only.
Where a complex polar-form API earns its keep
Electrical engineering notebooks convert phasors from rectangular impedance to polar magnitude and phase before multiplying series and parallel networks; calling a tiny parse API avoids pulling a full computer-algebra system for two coefficients.
Integration use cases
Exam and LMS auto-grading
Mark rectangular-to-polar items with a deterministic oracle that treats the origin as r=0 and θ≡0° and never invents an angle for non-finite input.
Technical questions
What happens at the origin 0+0i?
The origin is a special case: modulus is 0, argument_deg and argument_rad are 0 by convention, is_origin is true, and polar/trigonometric forms are the string "0". Arg(0) is otherwise undefined.
Is the argument returned in degrees or radians?
Both. argument_deg is the principal argument in degrees; argument_rad is the same angle in radians from atan2(imag, real).
What does the complex rectangular to polar form calculator cost?
The browser tool is free. API requests use prepaid KIT balance at $0.002 per successful call; invalid input is not billed.