text:
Series and parallel circuits
From Wikipedia, the free encyclopedia
Jump to: navigation, search
A series circuit with a voltage source (such as a battery, or in this case a cell) and 3 resistors
Components of an electrical circuit or electronic circuit can be connected in many different ways. The two simplest of these are called series and parallel and occur frequently. Components connected in series are connected along a single path, so the same current flows through all of the components.[1][2] Components connected in parallel are connected along multiple paths, so the same voltage is applied to each component.[3]
A circuit composed solely of components connected in series is known as a series circuit; likewise, one connected completely in parallel is known as a parallel circuit.
In a series circuit, the current through each of the components is the same, and the voltage across the circuit is the sum of the voltages across each component.[1] In a parallel circuit, the voltage across each of the components is the same, and the total current is the sum of the currents through each component.[1]
Consider a very simple circuit consisting of four light bulbs and one 6 V battery. If a wire joins the battery to one bulb, to the next bulb, to the next bulb, to the next bulb, then back to the battery, in one continuous loop, the bulbs are said to be in series. If each bulb is wired to the battery in a separate loop, the bulbs are said to be in parallel. If the four light bulbs are connected in series, there is same current through all of them, and the voltage drop is 1.5 V across each bulb, which may not be sufficient to make them glow. If the light bulbs are connected in parallel, the currents through the light bulbs combine to form the current in the battery, while the voltage drop is across each bulb and they all glow.
In a series circuit, every device must function for the circuit to be complete. One bulb burning out in a series circuit breaks the circuit. In parallel circuits, each light bulb has its own circuit, so all but one light could be burned out, and the last one will still function.
Contents
[hide]
1 Series circuits
1.1 Current
1.2 Resistors
1.3 Inductors
1.4 Capacitors
1.5 Switches
1.6 Cells and batteries
1.7 Voltage
2 Parallel circuits
2.1 Voltage
2.2 Current
2.3 Resistors
2.4 Inductors
2.5 Capacitors
2.6 Switches
2.7 Cells and batteries
3 Combining conductances
4 Notation
5 Applications
6 See also
7 Notes
8 References
9 External links
Series circuits[edit]
Electromagnetism
Electricity
Magnetism
Electrostatics[show]
Electric charge
Static electricity
Electric field
Conductor
Insulator
Triboelectricity
Electrostatic discharge
Induction
Coulomb's law
Gauss's law
Electric flux / potential energy
Electric dipole moment
Polarization density
Magnetostatics[show]
Ampère's law
Magnetic field
Magnetization
Magnetic flux
Biot–Savart law
Magnetic dipole moment
Gauss's law for magnetism
Electrodynamics[show]
Lorentz force law
Electromagnetic induction
Faraday's law
Lenz's law
Displacement current
Magnetic potential
Maxwell's equations
Electromagnetic field
Electromagnetic pulse
Electromagnetic radiation
Maxwell tensor
Poynting vector
Liénard–Wiechert potential
Jefimenko's equations
Eddy current
London equations
Mathematical descriptions of the electromagnetic field
Electrical network[hide]
Electric current
Electric potential
Voltage
Resistance
Ohm's law
Series circuit
Parallel circuit
Direct current
Alternating current
Electromotive force
Capacitance
Inductance
Impedance
Resonant cavities
Waveguides
Covariant formulation[show]
Electromagnetic tensor
(stress–energy tensor)
Four-current
Electromagnetic four-potential
Scientists[show]
Ampère
Coulomb
Faraday
Gauss
Heaviside
Henry
Hertz
Lorentz
Maxwell
Tesla
Volta
Weber
Ørsted
v
t
e
Series circuits are sometimes called current-coupled or daisy chain-coupled. The current in a series circuit goes through every component in the circuit. Therefore, all of the components in a series connection carry the same current. There is only one path in a series circuit in which the current can flow.
A series circuit's main disadvantage or advantage, depending on its intended role in a product's overall design, is that because there is only one path in which its current can flow, opening or breaking a series circuit at any point causes the entire circuit to "open" or stop operating. For example, if even one of the light bulbs in an older-style string of Christmas tree lights burns out or is removed, the entire string becomes inoperable until the bulb is replaced.
Current[edit]
I = I 1 = I 2 = I 3 = . . . = I n {\displaystyle I=I_{1}=I_{2}=I_{3}=...=I_{n}}
In a series circuit the current is the same for all of the elements.
Resistors[edit]
The total resistance of resistors in series is equal to the sum of their individual resistances:
R total = R 1 + R 2 + ⋯ + R n {\displaystyle R_{\text{total}}=R_{1}+R_{2}+\cdots +R_{n}}
Electrical conductance presents a reciprocal quantity to resistance. Total conductance of a series circuits of pure resistors, therefore, can be calculated from the following expression:
1 G t o t a l = 1 G 1 + 1 G 2 + ⋯ + 1 G n {\displaystyle {\frac {1}{G_{\mathrm {total} }}}={\frac {1}{G_{1}}}+{\frac {1}{G_{2}}}+\cdots +{\frac {1}{G_{n}}}} .
For a special case of two resistors in series, the total conductance is equal to:
G total = G 1 G 2 G 1 + G 2 . {\displaystyle G_{\text{total}}={\frac {G_{1}G_{2}}{G_{1}+G_{2}}}.}
Inductors[edit]
Inductors follow the same law, in that the total inductance of non-coupled inductors in series is equal to the sum of their individual inductances:
L t o t a l = L 1 + L 2 + ⋯ + L n {\displaystyle L_{\mathrm {total} }=L_{1}+L_{2}+\cdots +L_{n}}
However, in some situations it is difficult to prevent adjacent inductors from influencing each other, as the magnetic field of one device couples with the windings of its neighbours. This influence is defined by the mutual inductance M. For example, if two inductors are in series, there are two possible equivalent inductances depending on how the magnetic fields of both inductors influence each other.
When there are more than two inductors, the mutual inductance between each of them and the way the coils influence each other complicates the calculation. For a larger number of coils the total combined inductance is given by the sum of all mutual inductances between the various coils including the mutual inductance of each given coil with itself, which we term self-inductance or simply inductance. For three coils, there are six mutual inductances M 12 {\displaystyle M_{12}} , M 13 {\displaystyle M_{13}} , M 23 {\displaystyle M_{23}} and M 21 {\displaystyle M_{21}} , M 31 {\displaystyle M_{31}} and M 32 {\displaystyle M_{32}} . There are also the three self-inductances of the three coils: M 11 {\displaystyle M_{11}} , M 22 {\displaystyle M_{22}} and M 33 {\displaystyle M_{33}} .
Therefore
L t o t a l = ( M 11 + M 22 + M 33 ) + ( M 12 + M 13 + M 23 ) + ( M 21 + M 31 + M 32 ) {\displaystyle L_{\mathrm {total} }=(M_{11}+M_{22}+M_{33})+(M_{12}+M_{13}+M_{23})+(M_{21}+M_{31}+M_{32})}
By reciprocity M i j {\displaystyle M_{ij}} = M j i {\displaystyle M_{ji}} so that the last two groups can be combined. The first three terms represent the sum of the self-inductances of the various coils. The formula is easily extended to any number of series coils with mutual coupling. The method can be used to find the self-inductance of large coils of wire of any cross-sectional shape by computing the sum of the mutual inductance of each turn of wire in the coil with every other turn since in such a coil all turns are in series.
Capacitors[edit]
See also: Capacitor § Networks
Capacitors follow the same law using the reciprocals. The total capacitance of capacitors in series is equal to the reciprocal of the sum of the reciprocals of their individual capacitances:
1 C t o t a l = 1 C 1 + 1 C 2 + ⋯ + 1 C n {\displaystyle {\frac {1}{C_{\mathrm {total} }}}={\frac {1}{C_{1}}}+{\frac {1}{C_{2}}}+\cdots +{\frac {1}{C_{n}}}} .
Switches[edit]
Two or more switches in series form a logical AND; the circuit only carries current if all switches are closed. See AND gate.
Cells and batteries[edit]
A battery is a collection of electrochemical cells. If the cells are connected in series, the voltage of the battery will be the sum of the cell voltages. For example, a 12 volt car battery contains six 2-volt cells connected in series. Some vehicles, such as trucks, have two 12 volt batteries in series to feed the 24 volt system.
Voltage[edit]
In a series circuit the voltage is addition of all the voltage elements.
V = V 1 + V 2 + … + V n {\displaystyle V=V_{1}+V_{2}+\ldots +V_{n}}
Parallel circuits[edit]
"In Parallel" redirects here. For the 2017 Dhani Harrison album, see In Parallel (album).
If two or more components are connected in parallel they have the same potential difference (voltage) across their ends. The potential differences across the components are the same in magnitude, and they also have identical polarities. The same voltage is applicable to all circuit components connected in parallel. The total current is the sum of the currents through the individual components, in accordance with Kirchhoff’s current law.
Voltage[edit]
In a parallel circuit the voltage is the same for all elements.
V = V 1 = V 2 = … = V n {\displaystyle V=V_{1}=V_{2}=\ldots =V_{n}}
Current[edit]
The current in each individual resistor is found by Ohm's law. Factoring out the voltage gives
I t o t a l = V ( 1 R 1 + 1 R 2 + ⋯ + 1 R n ) {\displaystyle I_{\mathrm {total} }=V\left({\frac {1}{R_{1}}}+{\frac {1}{R_{2}}}+\cdots +{\frac {1}{R_{n}}}\right)} .
Resistors[edit]
To find the total resistance of all components, add the reciprocals of the resistances R i {\displaystyle R_{i}} of each component and take the reciprocal of the sum. Total resistance will always be less than the value of the smallest resistance:
1 R t o t a l = 1 R 1 + 1 R 2 + ⋯ + 1 R n {\displaystyle {\frac {1}{R_{\mathrm {total} }}}={\frac {1}{R_{1}}}+{\frac {1}{R_{2}}}+\cdots +{\frac {1}{R_{n}}}} .
For only two resistors, the unreciprocated expression is reasonably simple:
R t o t a l = R 1 R 2 R 1 + R 2 . {\displaystyle R_{\mathrm {total} }={\frac {R_{1}R_{2}}{R_{1}+R_{2}}}.}
This sometimes goes by the mnemonic "product over sum".
For N equal resistors in parallel, the reciprocal sum expression simplifies to:
1 R t o t a l = 1 R × N {\displaystyle {\frac {1}{R_{\mathrm {total} }}}={\frac {1}{R}}\times N} .
and therefore to:
R t o t a l = R N {\displaystyle {R_{\mathrm {total} }}={\frac {R}{N}}} .
To find the current in a component with resistance R i {\displaystyle R_{i}} , use Ohm's law again:
I i = V R i {\displaystyle I_{i}={\frac {V}{R_{i}}}\,} .
The components divide the current according to their reciprocal resistances, so, in the case of two resistors,
I 1 I 2 = R 2 R 1 {\displaystyle {\frac {I_{1}}{I_{2}}}={\frac {R_{2}}{R_{1}}}} .
An old term for devices connected in parallel is multiple, such as a multiple connection for arc lamps.
Since electrical conductance G {\displaystyle G} is reciprocal to resistance, the expression for total conductance of a parallel circuit of resistors reads:
G t o t a l = G 1 + G 2 + ⋯ + G n {\displaystyle {G_{\mathrm {total} }}={G_{1}}+{G_{2}}+\cdots +{G_{n}}} .
The relations for total conductance and resistance stand in a complementary relationship: the expression for a series connection of resistances is the same as for parallel connection of conductances, and vice versa.
Inductors[edit]
Inductors follow the same law, in that the total inductance of non-coupled inductors in parallel is equal to the reciprocal of the sum of the reciprocals of their individual inductances:
1 L t o t a l = 1 L 1 + 1 L 2 + ⋯ + 1 L n {\displaystyle {\frac {1}{L_{\mathrm {total} }}}={\frac {1}{L_{1}}}+{\frac {1}{L_{2}}}+\cdots +{\frac {1}{L_{n}}}} .
If the inductors are situated in each other's magnetic fields, this approach is invalid due to mutual inductance. If the mutual inductance between two coils in parallel is M, the equivalent inductor is:
1 L t o t a l = L 1 + L 2 − 2 M L 1 L 2 − M 2 {\displaystyle {\frac {1}{L_{\mathrm {total} }}}={\frac {L_{1}+L_{2}-2M}{L_{1}L_{2}-M^{2}}}}
If L 1 = L 2 {\displaystyle L_{1}=L_{2}}
L total = L + M 2 {\displaystyle L_{\text{total}}={\frac {L+M}{2}}}
The sign of M {\displaystyle M} depends on how the magnetic fields influence each other. For two equal tightly coupled coils the total inductance is close to that of each single coil. If the polarity of one coil is reversed so that M is negative, then the parallel inductance is nearly zero or the combination is almost non-inductive. It is assumed in the "tightly coupled" case M is very nearly equal to L. However, if the inductances are not equal and the coils are tightly coupled there can be near short circuit conditions and high circulating currents for both positive and negative values of M, which can cause problems.
More than three inductors becomes more complex and the mutual inductance of each inductor on each other inductor and their influence on each other must be considered. For three coils, there are three mutual inductances M 12 {\displaystyle M_{12}} , M 13 {\displaystyle M_{13}} and M 23 {\displaystyle M_{23}} . This is best handled by matrix methods and summing the terms of the inverse of the L {\displaystyle L} matrix (3 by 3 in this case).
The pertinent equations are of the form: v i = ∑ j L i , j d i j d t {\displaystyle v_{i}=\sum _{j}L_{i,j}{\frac {di_{j}}{dt}}}
Capacitors[edit]
The total capacitance of capacitors in parallel is equal to the sum of their individual capacitances:
C t o t a l = C 1 + C 2 + ⋯ + C n {\displaystyle C_{\mathrm {total} }=C_{1}+C_{2}+\cdots +C_{n}} .
The working voltage of a parallel combination of capacitors is always limited by the smallest working voltage of an individual capacitor.
Switches[edit]
Two or more switches in parallel form a logical OR; the circuit carries current if at least one switch is closed. See OR gate.
Cells and batteries[edit]
If the cells of a battery are connected in parallel, the battery voltage will be the same as the cell voltage but the current supplied by each cell will be a fraction of the total current. For example, if a battery comprises four identical cells connected in parallel and delivers a current of 1 ampere, the current supplied by each cell will be 0.25 ampere. Parallel-connected batteries were widely used to power the valve filaments in portable radios but they are now rare. Some solar electric systems have batteries in parallel to increase the storage capacity; a close approximation of total amp-hours is the sum of all batteries in parallel.
Combining conductances[edit]
From Kirchhoff's circuit laws we can deduce the rules for combining conductances. For two conductances G 1 {\displaystyle G_{1}} and G 2 {\displaystyle G_{2}} in parallel the voltage across them is the same and from Kirchhoff's Current Law the total current is
I E q = I 1 + I 2 . {\displaystyle I_{Eq}=I_{1}+I_{2}.\ \,}
Substituting Ohm's law for conductances gives
G E q V = G 1 V + G 2 V {\displaystyle G_{Eq}V=G_{1}V+G_{2}V\ \,}
and the equivalent conductance will be,
G E q = G 1 + G 2 . {\displaystyle G_{Eq}=G_{1}+G_{2}.\ \,}

For two conductances G 1 {\displaystyle G_{1}} and G 2 {\displaystyle G_{2}} in series the current through them will be the same and Kirchhoff's Voltage Law tells us that the voltage across them is the sum of the voltages across each conductance, that is,
V E q = V 1 + V 2 . {\displaystyle V_{Eq}=V_{1}+V_{2}.\ \,}
Substituting Ohm's law for conductance then gives,
I G E q = I G 1 + I G 2 {\displaystyle {\frac {I}{G_{Eq}}}={\frac {I}{G_{1}}}+{\frac {I}{G_{2}}}}
which in turn gives the formula for the equivalent conductance,
1 G E q = 1 G 1 + 1 G 2 . {\displaystyle {\frac {1}{G_{Eq}}}={\frac {1}{G_{1}}}+{\frac {1}{G_{2}}}.}
This equation can be rearranged slightly, though this is a special case that will only rearrange like this for two components.
G E q = G 1 G 2 G 1 + G 2 . {\displaystyle G_{Eq}={\frac {G_{1}G_{2}}{G_{1}+G_{2}}}.}
Notation[edit]
The value of two components in parallel is often represented in equations by two vertical lines, ∥, borrowing the parallel lines notation from geometry.[4][5]
R e q ≡ R 1 ∥ R 2 ≡ ( R 1 − 1 + R 2 − 1 ) − 1 ≡ R 1 R 2 R 1 + R 2 {\displaystyle R_{\mathrm {eq} }\equiv R_{1}\|R_{2}\equiv \left(R_{1}^{-1}+R_{2}^{-1}\right)^{-1}\equiv {\frac {R_{1}R_{2}}{R_{1}+R_{2}}}}
This simplifies expressions that would otherwise become complicated by expansion of the terms. For instance:
R 1 ∥ R 2 ∥ R 3 ≡ R 1 R 2 R 3 R 1 R 2 + R 1 R 3 + R 2 R 3 {\displaystyle R_{1}\|R_{2}\|R_{3}\equiv {\frac {R_{1}R_{2}R_{3}}{R_{1}R_{2}+R_{1}R_{3}+R_{2}R_{3}}}} .
Applications[edit]
A common application of series circuit in consumer electronics is in batteries, where several cells connected in series are used to obtain a convenient operating voltage. Two disposable zinc cells in series might power a flashlight or remote control at 3 volts; the battery pack for a hand-held power tool might contain a dozen lithium-ion cells wired in series to provide 48 volts.
Series circuits were formerly used for lighting in electric multiple unit trains. For example, if the supply voltage was 600 volts there might be eight 70-volt bulbs in series (total 560 volts) plus a resistor to drop the remaining 40 volts. Series circuits for train lighting were superseded, first by motor-generators, then by solid state devices.
Series resistance can also be applied to the arrangement of blood vessels within a given organ. Each organ is supplied by a large artery, smaller arteries, arterioles, capillaries, and veins arranged in series. The total resistance is the sum of the individual resistances, as expressed by the following equation: Rtotal = Rartery + Rarterioles + Rcapillaries. The largest proportion of resistance in this series is contributed by the arterioles.[6]
Parallel resistance is illustrated by the circulatory system. Each organ is supplied by an artery that branches off the aorta. The total resistance of this parallel arrangement is expressed by the following equation: 1/Rtotal = 1/Ra + 1/Rb + ... 1/Rn. Ra, Rb, and Rn are the resistances of the renal, hepatic, and other arteries respectively. The total resistance is less than the resistance of any of the individual arteries.[6]
See also[edit]
Network analysis (electrical circuits)
Wheatstone bridge
Y-Δ transform
Voltage divider
Current divider
Combining impedances
Equivalent impedance transforms
Resistance distance
Series-parallel partial order
Notes[edit]
^ Jump up to: a b c Resnick et al. (1966), Chapter 32, Example 1.
Jump up ^ Smith, R.J. (1966), page 21
Jump up ^ Resnick et al. (1966), Chapter 32, Example 4.
Jump up ^ http://www.en-genius.net/includes/files/avt_120406.pdf
Jump up ^ http://tex.stackexchange.com/questions/37912/how-to-draw-the-parallel-circuits-sign
^ Jump up to: a b Board Review Series: Physiology by Linda S. Costanzo pg. 74
References[edit]
Resnick, Robert and Halliday, David (1966), Physics, Vol I and II, Combined edition, Wiley International Edition, Library of Congress Catalog Card No. 66-11527
Smith, R.J. (1966), Circuits, Devices and Systems, Wiley International Edition, New York. Library of Congress Catalog Card No. 66-17612
Williams, Tim, The Circuit Designer's Companion, Butterworth-Heinemann, 2005 ISBN 0-7506-6370-7.
External links[edit]
Series circuit, Parallel circuit
Series and Parallel Circuits chapter from Lessons In Electric Circuits Vol 1 DC free ebook and Lessons In Electric Circuits series.
Series-Parallel Combination Circuits chapter from Lessons In Electric Circuits Vol 1 DC free ebook and Lessons In Electric Circuits series.
Sameen Ahmed Khan, How many equivalent resistances?, Resonance Journal of Science Education, Vol. 17, No. 5, 468-475 (May 2012).
Resistor combinations: How many values using 1K ohm resistors? - EDN magazine
Retrieved from "https://en.wikipedia.org/w/index.php?title=Series_and_parallel_circuits&oldid=803314478"
Categories:
Electrical circuits
Navigation menu
Personal tools
Not logged in
Talk
Contributions
Create account
Log in
Namespaces
Article
Talk
Variants
Views
Read
Edit
View history
More
Search
Navigation
Main page
Contents
Featured content
Current events
Random article
Donate to Wikipedia
Wikipedia store
Interaction
Help
About Wikipedia
Community portal
Recent changes
Contact page
Tools
What links here
Related changes
Upload file
Special pages
Permanent link
Page information
Wikidata item
Cite this page
Print/export
Create a book
Download as PDF
Printable version
In other projects
Wikimedia Commons
Languages
العربية
বাংলা
Български
Català
Čeština
Dansk
Deutsch
Español
Esperanto
Euskara
فارسی
Français
Bahasa Indonesia
Italiano
עברית
Қазақша
Latviešu
Nederlands
日本語
Norsk
Norsk nynorsk
Polski
Português
Русский
Seeltersk
Simple English
Српски / srpski
Suomi
Svenska
தமிழ்
Українська
Tiếng Việt
中文
Edit links
This page was last edited on 1 October 2017, at 19:21.
Text is available under the Creative Commons Attribution-ShareAlike License; additional terms may apply. By using this site, you agree to the Terms of Use and Privacy Policy. Wikipedia® is a registered trademark of the Wikimedia Foundation, Inc., a non-profit organization.
Privacy policy
About Wikipedia
Disclaimers
Contact Wikipedia
Developers
Cookie statement
Mobile view

key: html

type: local

value: div

attrs: id class

values: mw-page-base noprint

values: mw-head-base noprint

attrs: id class style

value: a

attrs: id class lang

values: firstHeading firstHeading en

values: siteSub noprint

values: jump-to-nav mw-jump

value: img

attrs: alt src width height class srcset data-file-width data-file-height

attrs: href class

attrs: href class title

attrs: href title

attrs: class style

values:
/wiki/Topology_(electronics)
mw-redirect
Topology (electronics)

value: b

attrs: alt src width height srcset data-file-width data-file-height

values: font-size: 105%; padding: 0.2em 0px 0.4em; text-align: center; display: none;

values: Mathematical descriptions of the electromagnetic field

values: Covariant formulation of classical electromagnetism

values: float:right;clear:right;width:22.0em;margin:0 0 1.0em 1.0em;background:#f9f9f9;border:1px solid #aaa;padding:0.2em;border-spacing:0.4em 0;text-align:center;line-height:1.4em;font-size:88%

values:
/wiki/Christmas_tree_lights
mw-redirect
Christmas tree lights

values: vertical-align: -0.671ex; width:27.115ex; height:2.509ex;

values: This is a diagram of several resistors, connected end to end, with the same amount of current through each.

values: vertical-align: -0.671ex; width:28.492ex; height:2.509ex;

values:
/wiki/Electrical_conductance
mw-redirect
Electrical conductance

values: vertical-align: -2.338ex; width:32.087ex; height:5.676ex;

values: vertical-align: -2.338ex; width:18.738ex; height:5.843ex;

values: A diagram of several inductors, connected end to end, with the same amount of current going through each.

values: vertical-align: -0.671ex; width:27.767ex; height:2.509ex;

values: L_\mathrm{total} = L_1 + L_2 + \cdots + L_n

values: vertical-align: -0.671ex; width:4.156ex; height:2.509ex;

values: vertical-align: -0.838ex; width:74.049ex; height:2.843ex;

values: vertical-align: -1.005ex; width:3.756ex; height:2.843ex;

values: A diagram of several capacitors, connected end to end, with the same amount of current going through each.

values: vertical-align: -2.338ex; width:31.428ex; height:5.676ex;

values:
/wiki/Car_battery
mw-redirect
Car battery

values: vertical-align: -0.671ex; width:23.639ex; height:2.509ex;

values: vertical-align: -0.671ex; width:24.413ex; height:2.509ex;

values: vertical-align: -2.505ex; width:35.886ex; height:6.176ex;

values: I_\mathrm{total} = V\left(\frac{1}{R_1} + \frac{1}{R_2} + \cdots + \frac{1}{R_n}\right)

values:
/wiki/Electrical_resistance
mw-redirect
Electrical resistance

values: vertical-align: -0.671ex; width:2.582ex; height:2.509ex;

values: A diagram of several resistors, side by side, both leads of each connected to the same wires.

values: vertical-align: -2.338ex; width:31.837ex; height:5.676ex;

values: vertical-align: -2.338ex; width:18.55ex; height:5.843ex;

values: R_\mathrm{total} = \frac{R_1R_2}{R_1+R_2} .

values: vertical-align: -2.338ex; width:16.905ex; height:5.676ex;

values: \frac{1}{R_\mathrm{total}} = \frac{1}{R} \times N

values: vertical-align: -2.005ex; width:11.444ex; height:5.509ex;

values:
/wiki/Current_(electricity)
mw-redirect
Current (electricity)

values: vertical-align: -2.338ex; width:8.754ex; height:5.843ex;

values: vertical-align: -2.338ex; width:9.712ex; height:5.843ex;

values: vertical-align: -0.338ex; width:1.837ex; height:2.176ex;

values: vertical-align: -0.671ex; width:28.743ex; height:2.509ex;

values: A diagram of several inductors, side by side, both leads of each connected to the same wires.

values: vertical-align: -2.338ex; width:31.112ex; height:5.676ex;

values: vertical-align: -2.505ex; width:24.662ex; height:6.009ex;

values: vertical-align: -0.671ex; width:8.419ex; height:2.509ex;

values: vertical-align: -1.838ex; width:16.085ex; height:5.343ex;

values: vertical-align: -0.338ex; width:2.453ex; height:2.176ex;

values: vertical-align: -0.338ex; width:1.593ex; height:2.176ex;

values: vertical-align: -3.338ex; width:16.149ex; height:7.176ex;

values: A diagram of several capacitors, side by side, both leads of each connected to the same wires.

values: vertical-align: -0.671ex; width:28.083ex; height:2.509ex;

values: C_\mathrm{total} = C_1 + C_2 + \cdots + C_n

values:
/wiki/Portable_radio
mw-redirect
Portable radio

values: vertical-align: -0.671ex; width:2.899ex; height:2.509ex;

values: vertical-align: -1.005ex; width:15.455ex; height:2.843ex;

values: vertical-align: -1.005ex; width:22.214ex; height:2.843ex;

values: vertical-align: -1.005ex; width:17.866ex; height:2.843ex;

values: vertical-align: -1.005ex; width:16.451ex; height:2.843ex;

values: vertical-align: -2.671ex; width:18.362ex; height:6.176ex;

values: vertical-align: -2.671ex; width:19.019ex; height:6.009ex;

values: vertical-align: -2.338ex; width:17.347ex; height:5.843ex;

values: vertical-align: -2.338ex; width:44.755ex; height:5.843ex;

values: vertical-align: -2.338ex; width:37.517ex; height:5.843ex;

values:
/wiki/Solid_state_(electronics)
mw-redirect
Solid state (electronics)

values:
reflist mw-references-wrap
list-style-type: decimal;

values:
nofollow
external text
http://arxiv.org/a/khan_s_1

values:
nofollow
http://www.ias.ac.in/resonance/
external text

values:
catlinks mw-normal-catlinks
catlinks mw-normal-catlinks
interface

values: Discussion about edits from this IP address [ctrl-alt-n]

values: A list of edits made from this IP address [ctrl-alt-y]

values: You are encouraged to create an account and log in; however, it is not mandatory

values: You're encouraged to log in; however, it's not mandatory. [ctrl-alt-o]

values:
/wiki/Series_and_parallel_circuits
View the content page [ctrl-alt-c]
c

values: Discussion about the content page [ctrl-alt-t]

values: p-namespaces navigation vectorTabs p-namespaces-label

values:
p-variants
navigation
vectorMenu emptyPortlet
p-variants-label

values: Past revisions of this page [ctrl-alt-h]

values: p-views navigation vectorTabs p-views-label

values:
p-cactions
navigation
vectorMenu emptyPortlet
p-cactions-label

values:
mw-wiki-logo
/wiki/Main_Page
Visit the main page

values:
/wiki/Main_Page
Visit the main page [ctrl-alt-z]
z

values: Featured content – the best of Wikipedia

values: Find background information on current events

values:
/wiki/Special:Random
Load a random article [ctrl-alt-x]
x

values: portal navigation p-navigation p-navigation-label

values: Guidance on how to use and edit Wikipedia

values: About the project, what you can do, where to find things

values: A list of recent changes in the wiki [ctrl-alt-r]

values: portal navigation p-interaction p-interaction-label

values: List of all English Wikipedia pages containing links to this page [ctrl-alt-j]

values: Recent changes in pages linked from this page [ctrl-alt-k]

values:
/wiki/Wikipedia:File_Upload_Wizard
Upload files [ctrl-alt-u]
u

values: A list of all special pages [ctrl-alt-q]

values: Permanent link to this revision of the page

values: Link to connected data repository item [ctrl-alt-g]

values: Printable version of this page [ctrl-alt-p]

values: portal navigation p-wikibase-otherprojects p-wikibase-otherprojects-label

values:
uls-settings-trigger
Language settings
0
button
true

values: دارة التوالي أو التوازي – Arabic

values: সমান্তরাল ও শ্রেণি বর্তনী – Bangla

values: Последователни и успоредни електрически вериги – Bulgarian

values: Seria kaj paralela cirkvitoj – Esperanto

values: مدارهای سری و موازی – Persian

values: Circuiti in serie e in parallelo – Italian

values: חיבור בטור ובמקביל – Hebrew

values: Өткізгіштерді тізбектей және параллель жалғау – Kazakh

values: 直列回路と並列回路 – Japanese

values: Последовательное и параллельное соединение – Russian

values: Riegenskaltenge un Parallelskaltenge – Saterland Frisian

values: Series and parallel circuits – Simple English

values: தொடர் இணைப்பு மற்றும் பக்க இணைப்பு மின்வழிகள் – Tamil

values: Послідовне і паралельне з'єднання провідників – Ukrainian

values: /static/images/wikimedia-button-1.5x.png 1.5x, /static/images/wikimedia-button-2x.png 2x

values: /static/images/poweredby_mediawiki_132x47.png 1.5x, /static/images/poweredby_mediawiki_176x62.png 2x

values:
suggestions
display: none; font-size: 13px;

values: mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject page-Series_and_parallel_circuits rootpage-Series_and_parallel_circuits vector-nav-directionality skin-vector action-view


text:
Application programming interface
From Wikipedia, the free encyclopedia
Jump to navigation Jump to search
"API" redirects here. For other uses, see API (disambiguation).
In computer programming, an application programming interface (API) is a set of subroutine definitions, protocols, and tools for building application software. In general terms, it is a set of clearly defined methods of communication between various software components. A good API makes it easier to develop a computer program by providing all the building blocks, which are then put together by the programmer. An API may be for a web-based system, operating system, database system, computer hardware, or software library. An API specification can take many forms, but often includes specifications for routines, data structures, object classes, variables, or remote calls. POSIX, Windows API and ASPI are examples of different forms of APIs. Documentation for the API is usually provided to facilitate usage and implementation.
Contents
[hide]
1 Purpose
2 Uses
2.1 Libraries and frameworks
2.2 Operating systems
2.3 Remote APIs
2.4 Web APIs
3 Design
4 Release policies
4.1 Public API implications
5 Documentation
6 Copyright controversy
7 Examples
8 See also
9 References
10 Further reading
Purpose[edit]
Just as a graphical user interface makes it easier for people to use programs, application programming interfaces make it easier for developers to use certain technologies in building applications. By abstracting the underlying implementation and only exposing objects or actions the developer needs, an API simplifies programming. While a graphical interface for an email client might provide a user with a button that performs all the steps for fetching and highlighting new emails, an API for file input/output might give the developer a function that copies a file from one location to another without requiring that the developer understand the file system operations occurring behind the scenes.[1]
Uses[edit]
Libraries and frameworks[edit]
An API is usually related to a software library. The API describes and prescribes the expected behavior (a specification) while the library is an actual implementation of this set of rules. A single API can have multiple implementations (or none, being abstract) in the form of different libraries that share the same programming interface. The separation of the API from its implementation can allow programs written in one language to use a library written in another. For example, because Scala and Java compile to compatible bytecode, Scala developers can take advantage of any Java API.[2]
API use can vary depending on the type of programming language involved. An API for a procedural language such as Lua could primarily consist of basic routines to execute code, manipulate data or handle errors, while an API for an object-oriented language such as Java would provide a specification of classes and their class methods.[3][4]
Language bindings are also APIs. By mapping the features and capabilities of one language to an interface implemented in another language, a language binding allows a library or service written in one language to be used when developing in another language.[5]Tools such as SWIG and F2PY, a Fortran-to-Python interface generator, facilitate the creation of such interfaces.[6]
An API can also be related to a software framework: a framework can be based on several libraries implementing several APIs, but unlike the normal use of an API, the access to the behavior built into the framework is mediated by extending its content with new classes plugged into the framework itself. Moreover, the overall program flow of control can be out of the control of the caller and in the hands of the framework by inversion of control or a similar mechanism.[7][8]
Operating systems[edit]
An API can specify the interface between an application and the operating system.[9]POSIX, for example, specifies a set of common APIs that aim to enable an application written for a POSIX conformant operating system to be compiled for another POSIX conformant operating system. Linux and Berkeley Software Distribution are examples of operating systems that implement the POSIX APIs.[10]
Microsoft has shown a strong commitment to a backward-compatible API, particularly within their Windows API (Win32) library, so older applications may run on newer versions of Windows using an executable-specific setting called "Compatibility Mode".[11]
An API differs from an application binary interface (ABI) in that an API is source code based while an ABI is binary based. For instance, POSIX provides APIs, while the Linux Standard Base provides an ABI.[12][13]
Remote APIs[edit]
Remote APIs allow developers to manipulate remote resources through protocols, specific standards for communication that allow different technologies to work together, regardless of language or platform. For example, the Java Database Connectivity API allows developers to query many different types of databases with the same set of functions, while the Java remote method invocation API uses the Java Remote Method Protocol to allow invocation of functions that operate remotely, but appear local to the developer.[14][15] Therefore, remote APIs are useful in maintaining the object abstraction in object-oriented programming; a method call, executed locally on a proxy object, invokes the corresponding method on the remote object, using the remoting protocol, and acquires the result to be used locally as return value. A modification on the proxy object will also result in a corresponding modification on the remote object.[16]
Web APIs[edit]
Main article: Web API
Web APIs are the defined interfaces through which interactions happen between an enterprise and applications that use its assets, which also is a Service Level Agreement (SLA) to specify the functional provider and expose the service path or URL for its API users, An API approach is an architectural approach that revolves around providing a program interface to a set of services to different applications serving different types of consumers.[17] When used in the context of web development, an API is typically defined a set of specifications , such as Hypertext Transfer Protocol (HTTP) request messages, along with a definition of the structure of response messages, which is usually in an Extensible Markup Language (XML) or JavaScript Object Notation (JSON) format. An example might be a shipping company API that can be added to an eCommerce-focused website, to facilitate ordering shipping services and automatically include current shipping rates, without the site developer having to enter the shipper's rate table into a web database. While "web API" historically has been virtually synonymous for web service, the recent trend (so-called Web 2.0) has been moving away from Simple Object Access Protocol (SOAP) based web services and service-oriented architecture (SOA) towards more direct representational state transfer (REST) style web resources and resource-oriented architecture (ROA).[18] Part of this trend is related to the Semantic Web movement toward Resource Description Framework (RDF), a concept to promote web-based ontology engineering technologies. Web APIs allow the combination of multiple APIs into new applications known as mashups.[19] In the social media space, web APIs have allowed web communities to facilitate sharing content and data between communities and applications. In this way, content that is created in one place can be dynamically posted and updated in multiple locations on the web.[20] For example, Twitter's REST API allows developers to access core Twitter data and the Search API provides methods for developers to interact with Twitter Search and trends data.[21]
Design[edit]
The design of an API has significant impact on its usage.[1] The principle of information hiding describes the role of programming interfaces as enabling modular programming by hiding the implementation details of the modules so that users of modules need not understand the complexities inside the modules.[22] Thus, the design of an API attempts to provide only the tools a user would expect.[1] The design of programming interfaces represents an important part of software architecture, the organization of a complex piece of software.[23]
Several authors have created recommendations for how to design APIs, such as Joshua Bloch,[24] Kin Lane,[25] and Michi Henning.[26]
Release policies[edit]
APIs are one of the most common ways technology companies integrate with each other. Those that provide and use APIs are considered as being members of a business ecosystem.[27]
The main policies for releasing an API are:[28]
Private: The API is for internal company use only.
Partner: Only specific business partners can use the API. For example, car service companies such as Uber and Lyft allow approved third-party developers to directly order rides from within their apps. This allows the companies to exercise quality control by curating which apps have access to the API, and provides them with an additional revenue stream.[29]
Public: The API is available for use by the public. For example, Microsoft makes the Microsoft Windows API public, and Apple releases its APIs Carbon and Cocoa, so that software can be written for their platforms.
Public API implications[edit]
An important factor when an API becomes public is its interface stability. Changes by a developer to a part of it—for example adding new parameters to a function call—could break compatibility with clients that depend on that API.[30]
When parts of a publicly presented API are subject to change and thus not stable, such parts of a particular API should be explicitly documented as unstable. For example, in the Google Guava library the parts that are considered unstable, and that might change in the near future, are marked with the Java annotation @Beta.[31]
A public API can sometimes declare parts of itself as deprecated or rescinded. This usually means that part of the API should be considered a candidate for being removed, or modified in a backward incompatible way. Therefore, these changes allows developers to transition away from parts of the API that will be removed or not supported in the future.[32]
Documentation[edit]
API documentation describes what services an API offers and how to use those services, aiming to cover everything a client would need to know for practical purposes. Documentation is crucial for the development and maintenance of applications using the API.[33] API documentation is traditionally found in documentation files but can also be found in social media such as blogs, forums, and Q&A websites.[34] Traditional documentation files are often presented via a documentation system, such as Javadoc or Pydoc, that has a consistent appearance and structure. However, the types of content included in the documentation differs from API to API.[35] In the interest of clarity, API documentation may include a description of classes and methods in the API as well as "typical usage scenarios, code snippets, design rationales, performance discussions, and contracts", but implementation details of the API services themselves are usually omitted. Restrictions and limitations on how the API can be used are also covered by the documentation. For instance, documentation for an API function could note that its parameters cannot be null, that the function itself is not thread safe,[36] or that a decrement and cancel protocol averts self-trading.[clarification needed] Because API documentation tends to be comprehensive, it is a challenge for writers to keep the documentation updated and for users to read it carefully, potentially yielding bugs.[37]
API documentation can be enriched with metadata information like Java annotations. This metadata can be used by the compiler, tools, and by the run-time environment to implement custom behaviors or custom handling.[38]
Copyright controversy[edit]
Main article: Oracle America, Inc. v. Google, Inc.
In 2010, Oracle Corporation sued Google for having distributed a new implementation of Java embedded in the Android operating system.[39] Google had not acquired any permission to reproduce the Java API, although permission had been given to the similar OpenJDK project. Judge William Alsup ruled in the Oracle v. Google case that APIs cannot be copyrighted in the U.S, and that a victory for Oracle would have widely expanded copyright protection and allowed the copyrighting of simple software commands:
To accept Oracle's claim would be to allow anyone to copyright one version of code to carry out a system of commands and thereby bar all others from writing their own different versions to carry out all or part of the same commands.[40][41]
In 2014, however, Alsup's ruling was overturned on appeal, though the question of whether such use of APIs constitutes fair use was left unresolved.[42]
In 2016, following a two-week trial, a jury determined that Google's reimplementation of the Java API constituted fair use, but Oracle vowed to appeal the decision.[43] Oracle won on its appeal, with the Court of Appeals for the Federal Circuit ruling that Google's use of the APIs did not qualify for fair use.[44]
Examples[edit]
See also: Category:Application programming interfaces
ASPI for SCSI device interfacing
Cocoa and Carbon for the Macintosh
DirectX for Microsoft Windows
EHLLAPI
Java APIs
ODBC for Microsoft Windows
OpenAL cross-platform sound API
OpenCL cross-platform API for general-purpose computing for CPUs & GPUs
OpenGL cross-platform graphics API
OpenMP API that supports multi-platform shared memory multiprocessing programming in C, C++ and Fortran on many architectures, including Unix and Microsoft Windows platforms.
Server Application Programming Interface (SAPI)
Simple DirectMedia Layer (SDL)
See also[edit]
API testing
API writer
Calling convention
Comparison of application virtual machines
Common Object Request Broker Architecture (CORBA)
Document Object Model (DOM)
Double-chance function
Foreign function interface
Interface (computing)
Interface control document
List of 3D graphics APIs
Name mangling
Open API
Open Service Interface Definitions
Platform-enabled website
Plugin
RAML (software)
Software Development Kit
Web API
XPCOM
References[edit]
^ Jump up to: a b c Clarke, Steven (2004). "Measuring API Usability". Dr. Dobb's. Retrieved 29 July 2016.
Jump up ^ Odersky, Martin; Spoon, Lex; Venners, Bill (10 December 2008). "Combining Scala and Java". www.artima.com. Retrieved 29 July 2016.
Jump up ^ de Figueiredo, Luiz Henrique; Ierusalimschy, Roberto; Filho, Waldemar Celes. "The design and implementation of a language for extending applications" (PDF). TeCGraf Grupo de Tecnologia em Computacao Grafica. Retrieved 29 July 2016.
Jump up ^ Sintes, Tony. "Just what is the Java API anyway?". JavaWorld. Retrieved 29 July 2016.
Jump up ^ Emery, David. "Standards, APIs, Interfaces and Bindings". Acm.org. Retrieved 2016-08-08.
Jump up ^ "F2PY.org". F2PY.org. Retrieved 2011-12-18.
Jump up ^ Fowler, Martin. "Inversion Of Control".
Jump up ^ Fayad, Mohamed. "Object-Oriented Application Frameworks".
Jump up ^ Lewine, Donald A. (1991). POSIX Programmer's Guide (PDF). O'Reilly & Associates, Inc. p. 1. Retrieved 2 August 2016.
Jump up ^ West, Joel; Dedrick, Jason (2001). "Open source standardization: the rise of Linux in the network era" (PDF). Knowledge, Technology & Policy. Springer. 14 (2): 88–112. Retrieved 2 August 2016.
Jump up ^ Microsogt (October 2001). "Support for Windows XP". Microsoft. p. 4. Archived from the original on 2009-09-26.
Jump up ^ "LSB Introduction". Linux Foundation. 21 June 2012. Retrieved 2015-03-27.
Jump up ^ Stoughton, Nick (April 2005). "Update on Standards" (PDF). USENIX. Retrieved 2009-06-04.
Jump up ^ Bierhoff, Kevin (23 April 2009). "API Protocol Compliance in Object-Oriented Software" (PDF). CMU Institute for Software Research. Retrieved 29 July 2016.
Jump up ^ Wilson, M. Jeff. "Get smart with proxies and RMI". JavaWorld. Retrieved 29 July 2016.
Jump up ^ Henning, Michi; Vinoski, Steve (1999). "Advanced CORBA Programming with C++". Addison-Wesley. ISBN 978-0201379273. Retrieved 16 June 2015.
Jump up ^ "API-fication" (PDF download). www.hcltech.com. August 2014.
Jump up ^ Benslimane, Djamal; Schahram Dustdar; Amit Sheth (2008). "Services Mashups: The New Generation of Web Applications". IEEE Internet Computing, vol. 12, no. 5. Institute of Electrical and Electronics Engineers. pp. 13–15.
Jump up ^ Niccolai, James (2008-04-23), "So What Is an Enterprise Mashup, Anyway?", PC World
Jump up ^ Parr, Ben. "The Evolution of the Social Media API". Mashable. Retrieved 26 July 2016.
Jump up ^ "Web API". Definition.net. Retrieved 21 February 2016.
Jump up ^ Parnas, D.L. (1972). "On the Criteria To Be Used in Decomposing Systems into Modules" (PDF). Association for Computing Machinery. Retrieved 8 August 2016.
Jump up ^ Garlan, David; Shaw, Mary (January 1994). "An Introduction to Software Architecture" (PDF). Advances in Software Engineering and Knowledge Engineering. 1. Retrieved 8 August 2016.
Jump up ^ Bloch, Josh. "How to design a good API and why it matters" (PDF).
Jump up ^ Lane, Kin (2016-03-14). "The Industry Guide to API Design" (PDF). Kin Lane via 3scale. Retrieved 2016-03-14.
Jump up ^ Henning, Michi. "API: Design Matters".
Jump up ^ de Ternay, Guerric (Oct 10, 2015). "Business Ecosystem: Creating an Economic Moat". BoostCompanies. Retrieved 2016-02-01.
Jump up ^ Boyd, Mark. "Private, Partner or Public: Which API Strategy Is Best For Business?". ProgrammableWeb. Retrieved 2 August 2016.
Jump up ^ Weissbrot, Alison (7 July 2016). "Car Service APIs Are Everywhere, But What's In It For Partner Apps? | AdExchanger". ad exchanger. Retrieved 2 August 2016.
Jump up ^ Shi, Lin; Zhong, Hao; Xie, Tao; Li, Mingshu (2011). "An Empirical Study on Evolution of API Documentation" (PDF). International Conference on Fundamental Approaches to Software Engineering. Springer Berlin Heidelberg. Retrieved 22 July 2016.
Jump up ^ "guava-libraries - Guava: Google Core Libraries for Java 1.6+ - Google Project Hosting". Code.google.com. 2014-02-04. Retrieved 2014-02-11.
Jump up ^ Oracle. "How and When to Deprecate APIs". Java SE Documentation. Retrieved 2 August 2016.
Jump up ^ Dekel, Uri; Herbsleb, James D. (May 2009). "Improving API Documentation Usability with Knowledge Pushing". Institute for Software Research, School of Computer Science. Carnegie Mellon University. Retrieved 22 July 2016.
Jump up ^ Parnin, Chris; Treude, Cristoph (May 2011). "Measuring API Documentation on the Web". Web2SE. Retrieved 22 July 2016. [permanent dead link]
Jump up ^ Maalej, Waleed; Robillard, Martin P. (April 2012). "Patterns of Knowledge in API Reference Documentation" (PDF). IEEE TRANSACTIONS ON SOFTWARE ENGINEERING. Retrieved 22 July 2016.
Jump up ^ Monperrus, Martin; Eichberg, Michael; Tekes, Elif; Mezini, Mira (3 December 2011). "What should developers be aware of? An empirical study on the directives of API documentation" (PDF). Empirical Software Engineering. 17 (6): 703–737. arXiv:1205.6363  . doi:10.1007/s10664-011-9186-4. Retrieved 22 July 2016.
Jump up ^ Shi, Lin; Zhong, Hao; Xie, Tao; Li, Mingshu (2011). "An Empirical Study on Evolution of API Documentation" (PDF). International Conference on Fundamental Approaches to Software Engineering. Springer Berlin Heidelberg. Retrieved 22 July 2016.
Jump up ^ "Annotations". Sun Microsystems. Retrieved 2011-09-30. .
Jump up ^ "Oracle and the End of Programming As We Know It". DrDobbs. 2012-05-01. Retrieved 2012-05-09.
Jump up ^ "APIs Can't be Copyrighted Says Judge in Oracle Case". TGDaily. 2012-06-01. Retrieved 2012-12-06.
Jump up ^ "Oracle America, Inc. vs. Google Inc" (PDF). Wired. 2012-05-31. Retrieved 2013-09-22.
Jump up ^ Rosenblatt, Seth (May 9, 2014). "Court sides with Oracle over Android in Java patent appeal". CNET. Retrieved 2014-05-10.
Jump up ^ "Google beats Oracle—Android makes "fair use" of Java APIs". Ars Technica. Retrieved 2016-07-28.
Jump up ^ Decker, Susan (March 27, 2018). "Oracle Wins Revival of Billion-Dollar Case Against Google". Bloomberg Businessweek. Retrieved March 27, 2018.
Further reading[edit]
Taina Bucher (2013). "Objects of Intense Feeling: The Case of the Twitter API". Computational Culture (3). ISSN 2047-2390. argues that "APIs are far from neutral tools" and form a key part of contemporary programming, understood as a fundamental part of culture.
hide
v
t
e
Operating systems
General
Advocacy
Comparison
Forensic engineering
History
Hobbyist development
List
Timeline
Usage share
Kernel
Architectures
Exokernel
Hybrid
Microkernel
Monolithic
Rump kernel
Unikernel
Components
Device driver
Loadable kernel module
Microkernel
User space
Process management
Concepts
Context switch
Interrupt
IPC
Process
Process control block
Real-time
Thread
Time-sharing
Scheduling
algorithms
Computer multitasking
Fixed-priority preemptive
Multilevel feedback queue
Preemptive
Round-robin
Shortest job next
Memory management and
resource protection
Bus error
General protection fault
Memory protection
Paging
Protection ring
Segmentation fault
Virtual memory
Storage access and
file systems
Boot loader
Defragmentation
Device file
File attribute
Inode
Journal
Partition
Virtual file system
Virtual tape library
List
AmigaOS
Android
BeOS
BSD
Chrome OS
CP/M
DOS
GNU
Haiku
illumos
IncludeOS
iOS
Linux
Macintosh
Classic Mac OS
macOS
MINIX
MorphOS
MUSIC/SP
Nemesis
NeXTSTEP
NOS
OpenVMS
ORVYL
OS/2
OSv
Pick
QNX
ReactOS
RISC OS
RSTS/E
RSX-11
RT-11
Solaris
TOPS-10/TOPS-20
TPF
Unix
Visi On
VM/CMS
VS/9
webOS
Windows
Xinu
z/OS
Miscellaneous concepts
API
Computer network
HAL
Live CD
Live USB
OS shell
CLI
GUI
TUI
VUI
ZUI
PXE
Authority control
BNF: cb13337425v (data)
GND: 4430243-5
LCCN: sh98004527
Retrieved from "https://en.wikipedia.org/w/index.php?title=Application_programming_interface&oldid=846515153"
Categories:
Technical communication
Application programming interfaces
Hidden categories:
All articles with dead external links
Articles with dead external links from July 2017
Articles with permanently dead external links
Wikipedia articles needing clarification from February 2018
Pages using div col with deprecated parameters
Wikipedia articles with BNF identifiers
Wikipedia articles with GND identifiers
Wikipedia articles with LCCN identifiers
Navigation menu
Personal tools
Not logged in
Talk
Contributions
Create account
Log in
Namespaces
Article
Talk
Variants
Views
Read
Edit
View history
More
Search
Navigation
Main page
Contents
Featured content
Current events
Random article
Donate to Wikipedia
Wikipedia store
Interaction
Help
About Wikipedia
Community portal
Recent changes
Contact page
Tools
What links here
Related changes
Upload file
Special pages
Permanent link
Page information
Wikidata item
Cite this page
Print/export
Create a book
Download as PDF
Printable version
In other projects
Wikimedia Commons
Languages
العربية
Asturianu
Azərbaycanca
বাংলা
Български
Boarisch
Bosanski
Català
Čeština
Dansk
Deutsch
Eesti
Ελληνικά
Español
Esperanto
Euskara
فارسی
Français
Galego
한국어
हिन्दी
Hrvatski
Bahasa Indonesia
Italiano
עברית
ქართული
Latviešu
Lietuvių
Magyar
മലയാളം
Монгол
Nederlands
日本語
Norsk
Norsk nynorsk
Piemontèis
Polski
Português
Română
Русский
Shqip
Simple English
Slovenčina
Slovenščina
Српски / srpski
Srpskohrvatski / српскохрватски
Suomi
Svenska
Tagalog
தமிழ்
ไทย
Türkçe
Українська
Tiếng Việt
中文
46 more
Edit links
This page was last edited on 19 June 2018, at 07:11 (UTC).
Text is available under the Creative Commons Attribution-ShareAlike License; additional terms may apply. By using this site, you agree to the Terms of Use and Privacy Policy. Wikipedia® is a registered trademark of the Wikimedia Foundation, Inc., a non-profit organization.
Privacy policy
About Wikipedia
Disclaimers
Contact Wikipedia
Developers
Cookie statement
Mobile view
Enable previews

values: mw-page-base noprint

values: mw-head-base noprint

values: firstHeading firstHeading en

values: siteSub noprint

attrs: class href

values: mw-jump-link #mw-head

values: mw-jump-link #p-search

values:
/wiki/API_(disambiguation)
mw-disambig
API (disambiguation)

attrs: role class

values:
note
hatnote navigation-not-searchable

values:
/wiki/Database_system
mw-redirect
Database system

values:
/wiki/Class_method
mw-redirect
Class method

values:
/wiki/Framework_(computer_science)
mw-redirect
Framework (computer science)

values:
/wiki/Communications_protocol
mw-redirect
Communications protocol

values:
/wiki/Uber_(company)
mw-redirect
Uber (company)

values:
noprint Inline-Template
margin-left:0.1em; white-space:nowrap;

values:
/wiki/William_Alsup
mw-redirect
William Alsup

values:
/wiki/Oracle_v._Google
mw-redirect
Oracle v. Google

values: United States Court of Appeals for the Federal Circuit

values: Server Application Programming Interface

values: -moz-column-width: 25em; -webkit-column-width: 25em; column-width: 25em;

values: Comparison of application virtual machines

values: Common Object Request Broker Architecture

values:
/wiki/List_of_3D_graphics_APIs
mw-redirect
List of 3D graphics APIs

values:
/wiki/Software_Development_Kit
mw-redirect
Software Development Kit

values: -moz-column-width: 22em; -webkit-column-width: 22em; column-width: 22em;

values:
nofollow
external text
http://www.acm.org/tsc/apis.html

values:
nofollow
http://www.f2py.org/
external text

values:
/wiki/PC_World_(magazine)
mw-redirect
PC World (magazine)

values:
nofollow
external text
https://www.definition.net/define/api

values:
nofollow
external text
https://arxiv.org/pdf/1205.6363.pdf

values:
nofollow
external text
//arxiv.org/abs/1205.6363

attrs: alt src title width height srcset data-file-width data-file-height

values:
nofollow
external text
http://www.drdobbs.com/jvm/232901227

values: -moz-column-width: 30em; -webkit-column-width: 30em; column-width: 30em; list-style-type: decimal;

values:
nofollow
external text
//www.worldcat.org/issn/2047-2390

values: nowraplinks collapsible autocollapse navbox-inner mw-collapsible mw-made-collapsible

values:
nofollow
external text
https://d-nb.info/gnd/4430243-5

values: Category:All articles with dead external links

values: Category:Articles with dead external links from July 2017

values: Category:Articles with permanently dead external links

values: Category:Wikipedia articles needing clarification from February 2018

values: Category:Pages using div col with deprecated parameters

values: Category:Wikipedia articles with BNF identifiers

values: Category:Wikipedia articles with GND identifiers

values: Category:Wikipedia articles with LCCN identifiers

values: Discussion about edits from this IP address [ctrl-alt-n]

values: A list of edits made from this IP address [ctrl-alt-y]

values: You are encouraged to create an account and log in; however, it is not mandatory

values: You're encouraged to log in; however, it's not mandatory. [ctrl-alt-o]

values:
/wiki/Application_programming_interface
View the content page [ctrl-alt-c]
c

values: Discussion about the content page [ctrl-alt-t]

values: p-namespaces navigation vectorTabs p-namespaces-label

values:
p-variants
navigation
vectorMenu emptyPortlet
p-variants-label

values: Past revisions of this page [ctrl-alt-h]

values: p-views navigation vectorTabs p-views-label

values:
p-cactions
navigation
vectorMenu emptyPortlet
p-cactions-label

values:
mw-wiki-logo
/wiki/Main_Page
Visit the main page

values:
/wiki/Main_Page
Visit the main page [ctrl-alt-z]
z

values: Featured content – the best of Wikipedia

values: Find background information on current events

values:
/wiki/Special:Random
Load a random article [ctrl-alt-x]
x

values: portal navigation p-navigation p-navigation-label

values: Guidance on how to use and edit Wikipedia

values: About the project, what you can do, where to find things

values: A list of recent changes in the wiki [ctrl-alt-r]

values: portal navigation p-interaction p-interaction-label

values: List of all English Wikipedia pages containing links to this page [ctrl-alt-j]

values: Recent changes in pages linked from this page [ctrl-alt-k]

values:
/wiki/Wikipedia:File_Upload_Wizard
Upload files [ctrl-alt-u]
u

values: A list of all special pages [ctrl-alt-q]

values: Permanent link to this revision of the page

values: Link to connected data repository item [ctrl-alt-g]

values: واجهة برمجة التطبيقات – Arabic

values: Interfaz de programación d\'aplicaciones – Asturian

values:
interlanguage-link interwiki-ast
display: none;

values: Tətbiqi proqramlaşdırma interfeysi – Azerbaijani

values:
interlanguage-link interwiki-az
display: none;

values: অ্যাপ্লিকেশন প্রোগ্রামিং ইন্টারফেস – Bangla

values:
interlanguage-link interwiki-bn
display: none;

values: Приложно-програмен интерфейс – Bulgarian

values:
interlanguage-link interwiki-bg
display: none;

values:
https://bar.wikipedia.org/wiki/API
API – Bavarian
bar
bar
interlanguage-link-target

values:
interlanguage-link interwiki-bar
display: none;

values: Aplikativni programski interfejs – Bosnian

values:
interlanguage-link interwiki-bs
display: none;

values: Interfície de programació d'aplicacions – Catalan

values:
interlanguage-link interwiki-ca
display: none;

values:
https://cs.wikipedia.org/wiki/API
API – Czech
cs
cs
interlanguage-link-target

values:
interlanguage-link interwiki-cs
display: none;

values: Application programming interface – Danish

values:
interlanguage-link interwiki-da
display: none;

values:
interlanguage-link interwiki-et
display: none;

values: Διεπαφή προγραμματισμού εφαρμογών – Greek

values:
interlanguage-link interwiki-el
display: none;

values: Interfaz de programación de aplicaciones – Spanish

values:
interlanguage-link interwiki-eo
display: none;

values:
https://eu.wikipedia.org/wiki/API
API – Basque
eu
eu
interlanguage-link-target

values:
interlanguage-link interwiki-eu
display: none;

values: رابط برنامه‌نویسی کاربردی – Persian

values:
interlanguage-link interwiki-fa
display: none;

values:
https://gl.wikipedia.org/wiki/API
API – Galician
gl
gl
interlanguage-link-target

values:
interlanguage-link interwiki-gl
display: none;

values:
https://ko.wikipedia.org/wiki/API
API – Korean
ko
ko
interlanguage-link-target

values:
interlanguage-link interwiki-ko
display: none;

values: एपीआई – Hindi

values:
https://hr.wikipedia.org/wiki/API
API – Croatian
hr
hr
interlanguage-link-target

values:
interlanguage-link interwiki-hr
display: none;

values: Antarmuka pemrograman aplikasi – Indonesian

values: Application programming interface – Italian

values:
interlanguage-link interwiki-it
display: none;

values: ממשק תכנות יישומים – Hebrew

values:
interlanguage-link interwiki-he
display: none;

values: აპლიკაციის პროგრამირების ინტერფეისი – Georgian

values:
interlanguage-link interwiki-ka
display: none;

values:
interlanguage-link interwiki-lv
display: none;

values: Aplikacijų programavimo sąsaja – Lithuanian

values:
interlanguage-link interwiki-lt
display: none;

values: Alkalmazásprogramozási felület – Hungarian

values:
interlanguage-link interwiki-hu
display: none;

values: ആപ്ലിക്കേഷൻ പ്രോഗ്രാമിങ് ഇന്റർഫേസ് – Malayalam

values:
interlanguage-link interwiki-ml
display: none;

values:
https://mn.wikipedia.org/wiki/API
API – Mongolian
mn
mn
interlanguage-link-target

values:
interlanguage-link interwiki-mn
display: none;

values: Application programming interface – Dutch

values:
interlanguage-link interwiki-nl
display: none;

values: アプリケーションプログラミングインタフェース – Japanese

values:
interlanguage-link interwiki-ja
display: none;

values:
interlanguage-link interwiki-no
display: none;

values: Programmeringsgrensesnitt – Norwegian Nynorsk

values:
interlanguage-link interwiki-nn
display: none;

values:
https://pms.wikipedia.org/wiki/API
API – Piedmontese
pms
pms
interlanguage-link-target

values:
interlanguage-link interwiki-pms
display: none;

values: Interfejs programowania aplikacji – Polish

values:
interlanguage-link interwiki-pl
display: none;

values: Interface de programação de aplicações – Portuguese

values: Application Programming Interface – Romanian

values:
interlanguage-link interwiki-ro
display: none;

values:
https://ru.wikipedia.org/wiki/API
API – Russian
ru
ru
interlanguage-link-target

values: Interfejsi për programimin e aplikacioneve – Albanian

values:
interlanguage-link interwiki-sq
display: none;

values: Application programming interface – Simple English

values:
interlanguage-link interwiki-simple
display: none;

values: Application programming interface – Slovak

values:
interlanguage-link interwiki-sk
display: none;

values: Vmesnik za namensko programiranje – Slovenian

values:
interlanguage-link interwiki-sl
display: none;

values: Апликациони програмски интерфејс – Serbian

values:
interlanguage-link interwiki-sr
display: none;

values: Aplikacijsko programsko sučelje – Serbo-Croatian

values:
interlanguage-link interwiki-sh
display: none;

values:
interlanguage-link interwiki-fi
display: none;

values: Application Programming Interface – Swedish

values:
interlanguage-link interwiki-sv
display: none;

values: Application programming interface – Tagalog

values:
interlanguage-link interwiki-tl
display: none;

values: செயலி நிரலாக்க இடைமுகம் – Tamil

values:
interlanguage-link interwiki-ta
display: none;

values: เอพีไอ – Thai

values:
interlanguage-link interwiki-th
display: none;

values:
interlanguage-link interwiki-tr
display: none;

values: Прикладний програмний інтерфейс – Ukrainian

values:
interlanguage-link interwiki-uk
display: none;

values: Giao diện lập trình ứng dụng – Vietnamese

values:
interlanguage-link interwiki-vi
display: none;

values: 应用程序接口 – Chinese

values: All languages (initial selection from common choices by you and others)

values: mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject page-Application_programming_interface rootpage-Application_programming_interface skin-vector action-view


text:
3D projection
From Wikipedia, the free encyclopedia
Jump to: navigation, search
Part of a series on
Graphical projection
Planar[show]
Parallel projection
Orthographic projection
Multiview projection
Axonometric projection
Isometric projection
Oblique projection
Perspective projection
Curvilinear perspective
Reverse perspective
Views[show]
2.5D
Bird's-eye view
Cross section
Cutaway drawing
Exploded view drawing
Fisheye lens
Panorama
Worm's-eye view
Zoom lens
Topics[show]
3D projection
Anamorphosis
Axonometry
Computer graphics
Computer-aided design
Descriptive geometry
Engineering drawing
Map projection
Picture plane
Plans (drawings)
Projection (linear algebra)
Projection plane
Projective geometry
Stereoscopy
Technical drawing
Vanishing point
Video game graphics
Viewing frustum
v
t
e
It has been suggested that this article be merged into Graphical projection. (Discuss) Proposed since May 2017.
3D projection is any method of mapping three-dimensional points to a two-dimensional plane. As most current methods for displaying graphical data are based on planar (pixel information from several bitplanes) two-dimensional media, the use of this type of projection is widespread, especially in computer graphics, engineering and drafting.
Contents
[hide]
1 Orthographic projection
2 Weak perspective projection
3 Perspective projection
4 Diagram
5 See also
6 References
7 Further reading
8 External links
Orthographic projection[edit]
Main article: Orthographic projection
When the human eye looks at a scene, objects in the distance appear smaller than objects close by. Orthographic projection ignores this effect to allow the creation of to-scale drawings for construction and engineering.
Orthographic projections are a small set of transforms often used to show profile, detail or precise measurements of a three dimensional object. Common names for orthographic projections include plane, cross-section, bird's-eye, and elevation.
If the normal of the viewing plane (the camera direction) is parallel to one of the primary axes (which is the x, y, or z axis), the mathematical transformation is as follows; To project the 3D point a x {\displaystyle a_{x}} , a y {\displaystyle a_{y}} , a z {\displaystyle a_{z}} onto the 2D point b x {\displaystyle b_{x}} , b y {\displaystyle b_{y}} using an orthographic projection parallel to the y axis (where positive y represents forward direction - profile view), the following equations can be used:
b x = s x a x + c x {\displaystyle b_{x}=s_{x}a_{x}+c_{x}}
b y = s z a z + c z {\displaystyle b_{y}=s_{z}a_{z}+c_{z}}
where the vector s is an arbitrary scale factor, and c is an arbitrary offset. These constants are optional, and can be used to properly align the viewport. Using matrix multiplication, the equations become:
[ b x b y ] = [ s x 0 0 0 0 s z ] [ a x a y a z ] + [ c x c z ] {\displaystyle {\begin{bmatrix}{b_{x}}\\{b_{y}}\\\end{bmatrix}}={\begin{bmatrix}{s_{x}}&0&0\\0&0&{s_{z}}\\\end{bmatrix}}{\begin{bmatrix}{a_{x}}\\{a_{y}}\\{a_{z}}\\\end{bmatrix}}+{\begin{bmatrix}{c_{x}}\\{c_{z}}\\\end{bmatrix}}} .
While orthographically projected images represent the three dimensional nature of the object projected, they do not represent the object as it would be recorded photographically or perceived by a viewer observing it directly. In particular, parallel lengths at all points in an orthographically projected image are of the same scale regardless of whether they are far away or near to the virtual viewer. As a result, lengths are not foreshortened as they would be in a perspective projection.
Weak perspective projection[edit]
A "weak" perspective projection uses the same principles of an orthographic projection, but requires the scaling factor to be specified, thus ensuring that closer objects appear bigger in the projection, and vice versa. It can be seen as a hybrid between an orthographic and a perspective projection, and described either as a perspective projection with individual point depths Z i {\displaystyle Z_{i}} replaced by an average constant depth Z a v e {\displaystyle Z_{ave}} ,[1] or simply as an orthographic projection plus a scaling.[2]
The weak-perspective model thus approximates perspective projection while using a simpler model, similar to the pure (unscaled) orthographic perspective. It is a reasonable approximation when the depth of the object along the line of sight is small compared to the distance from the camera, and the field of view is small. With these conditions, it can be assumed that all points on a 3D object are at the same distance Z a v e {\displaystyle Z_{ave}} from the camera without significant errors in the projection (compared to the full perspective model).
Equation
P x = X Z a v e P y = Y Z a v e {\displaystyle {\begin{array}{lcl}P_{x}={\frac {X}{Z_{ave}}}\\P_{y}={\frac {Y}{Z_{ave}}}\end{array}}}
assuming focal length f = 1 {\displaystyle {\mathit {f}}=1} .
Perspective projection[edit]
See also: Perspective (graphical), Transformation matrix, and Camera matrix
When the human eye views a scene, objects in the distance appear smaller than objects close by - this is known as perspective. While orthographic projection ignores this effect to allow accurate measurements, perspective projection shows distant objects as smaller to provide additional realism.
The perspective projection requires a more involved definition as compared to orthographic projections. A conceptual aid to understanding the mechanics of this projection is to imagine the 2D projection as though the object(s) are being viewed through a camera viewfinder. The camera's position, orientation, and field of view control the behavior of the projection transformation. The following variables are defined to describe this transformation:
a x , y , z {\displaystyle \mathbf {a} _{x,y,z}} - the 3D position of a point A that is to be projected.
c x , y , z {\displaystyle \mathbf {c} _{x,y,z}} - the 3D position of a point C representing the camera.
θ x , y , z {\displaystyle \mathbf {\theta } _{x,y,z}} - The orientation of the camera (represented by Tait–Bryan angles).
e x , y , z {\displaystyle \mathbf {e} _{x,y,z}} - the viewer's position relative to the display surface [3] which goes through point C representing the camera.
Which results in:
b x , y {\displaystyle \mathbf {b} _{x,y}} - the 2D projection of a {\displaystyle \mathbf {a} } .
When c x , y , z = ⟨ 0 , 0 , 0 ⟩ , {\displaystyle \mathbf {c} _{x,y,z}=\langle 0,0,0\rangle ,} and θ x , y , z = ⟨ 0 , 0 , 0 ⟩ , {\displaystyle \mathbf {\theta } _{x,y,z}=\langle 0,0,0\rangle ,} the 3D vector ⟨ 1 , 2 , 0 ⟩ {\displaystyle \langle 1,2,0\rangle } is projected to the 2D vector ⟨ 1 , 2 ⟩ {\displaystyle \langle 1,2\rangle } .
Otherwise, to compute b x , y {\displaystyle \mathbf {b} _{x,y}} we first define a vector d x , y , z {\displaystyle \mathbf {d} _{x,y,z}} as the position of point A with respect to a coordinate system defined by the camera, with origin in C and rotated by θ {\displaystyle \mathbf {\theta } } with respect to the initial coordinate system. This is achieved by subtracting c {\displaystyle \mathbf {c} } from a {\displaystyle \mathbf {a} } and then applying a rotation by − θ {\displaystyle -\mathbf {\theta } } to the result. This transformation is often called a camera transform, and can be expressed as follows, expressing the rotation in terms of rotations about the x, y, and z axes (these calculations assume that the axes are ordered as a left-handed system of axes): [4] [5]
[ d x d y d z ] = [ 1 0 0 0 cos  ( θ x ) sin  ( θ x ) 0 − sin  ( θ x ) cos  ( θ x ) ] [ cos  ( θ y ) 0 − sin  ( θ y ) 0 1 0 sin  ( θ y ) 0 cos  ( θ y ) ] [ cos  ( θ z ) sin  ( θ z ) 0 − sin  ( θ z ) cos  ( θ z ) 0 0 0 1 ] ( [ a x a y a z ] − [ c x c y c z ] ) {\displaystyle {\begin{bmatrix}\mathbf {d} _{x}\\\mathbf {d} _{y}\\\mathbf {d} _{z}\\\end{bmatrix}}={\begin{bmatrix}1&0&0\\0&{\cos(\mathbf {\theta } _{x})}&{\sin(\mathbf {\theta } _{x})}\\0&{-\sin(\mathbf {\theta } _{x})}&{\cos(\mathbf {\theta } _{x})}\\\end{bmatrix}}{\begin{bmatrix}{\cos(\mathbf {\theta } _{y})}&0&{-\sin(\mathbf {\theta } _{y})}\\0&1&0\\{\sin(\mathbf {\theta } _{y})}&0&{\cos(\mathbf {\theta } _{y})}\\\end{bmatrix}}{\begin{bmatrix}{\cos(\mathbf {\theta } _{z})}&{\sin(\mathbf {\theta } _{z})}&0\\{-\sin(\mathbf {\theta } _{z})}&{\cos(\mathbf {\theta } _{z})}&0\\0&0&1\\\end{bmatrix}}\left({{\begin{bmatrix}\mathbf {a} _{x}\\\mathbf {a} _{y}\\\mathbf {a} _{z}\\\end{bmatrix}}-{\begin{bmatrix}\mathbf {c} _{x}\\\mathbf {c} _{y}\\\mathbf {c} _{z}\\\end{bmatrix}}}\right)}
This representation corresponds to rotating by three Euler angles (more properly, Tait–Bryan angles), using the xyz convention, which can be interpreted either as "rotate about the extrinsic axes (axes of the scene) in the order z, y, x (reading right-to-left)" or "rotate about the intrinsic axes (axes of the camera) in the order x, y, z (reading left-to-right)". Note that if the camera is not rotated ( θ x , y , z = ⟨ 0 , 0 , 0 ⟩ {\displaystyle \mathbf {\theta } _{x,y,z}=\langle 0,0,0\rangle } ), then the matrices drop out (as identities), and this reduces to simply a shift: d = a − c . {\displaystyle \mathbf {d} =\mathbf {a} -\mathbf {c} .}
Alternatively, without using matrices (let's replace (ax-cx) with x and so on, and abbreviate cosθ to c and sinθ to s):
d x = c y ( s z y + c z x ) − s y z d y = s x ( c y z + s y ( s z y + c z x ) ) + c x ( c z y − s z x ) d z = c x ( c y z + s y ( s z y + c z x ) ) − s x ( c z y − s z x ) {\displaystyle {\begin{array}{lcl}\mathbf {d} _{x}=c_{y}(s_{z}\mathbf {y} +c_{z}\mathbf {x} )-s_{y}\mathbf {z} \\\mathbf {d} _{y}=s_{x}(c_{y}\mathbf {z} +s_{y}(s_{z}\mathbf {y} +c_{z}\mathbf {x} ))+c_{x}(c_{z}\mathbf {y} -s_{z}\mathbf {x} )\\\mathbf {d} _{z}=c_{x}(c_{y}\mathbf {z} +s_{y}(s_{z}\mathbf {y} +c_{z}\mathbf {x} ))-s_{x}(c_{z}\mathbf {y} -s_{z}\mathbf {x} )\\\end{array}}}
This transformed point can then be projected onto the 2D plane using the formula (here, x/y is used as the projection plane; literature also may use x/z):[6]
b x = e z d z d x − e x b y = e z d z d y − e y . {\displaystyle {\begin{array}{lcl}\mathbf {b} _{x}&=&{\frac {\mathbf {e} _{z}}{\mathbf {d} _{z}}}\mathbf {d} _{x}-\mathbf {e} _{x}\\\mathbf {b} _{y}&=&{\frac {\mathbf {e} _{z}}{\mathbf {d} _{z}}}\mathbf {d} _{y}-\mathbf {e} _{y}\\\end{array}}.}
Or, in matrix form using homogeneous coordinates, the system
[ f x f y f z f w ] = [ 1 0 − e x e z 0 0 1 − e y e z 0 0 0 1 0 0 0 − 1 e z 1 ] [ d x d y d z 1 ] {\displaystyle {\begin{bmatrix}\mathbf {f} _{x}\\\mathbf {f} _{y}\\\mathbf {f} _{z}\\\mathbf {f} _{w}\\\end{bmatrix}}={\begin{bmatrix}1&0&-{\frac {\mathbf {e} _{x}}{\mathbf {e} _{z}}}&0\\0&1&-{\frac {\mathbf {e} _{y}}{\mathbf {e} _{z}}}&0\\0&0&1&0\\0&0&-{\frac {1}{\mathbf {e} _{z}}}&1\\\end{bmatrix}}{\begin{bmatrix}\mathbf {d} _{x}\\\mathbf {d} _{y}\\\mathbf {d} _{z}\\1\\\end{bmatrix}}}
in conjunction with an argument using similar triangles, leads to division by the homogeneous coordinate, giving
b x = f x / f w b y = f y / f w . {\displaystyle {\begin{array}{lcl}\mathbf {b} _{x}&=&\mathbf {f} _{x}/\mathbf {f} _{w}\\\mathbf {b} _{y}&=&\mathbf {f} _{y}/\mathbf {f} _{w}\\\end{array}}.}
The distance of the viewer from the display surface, e z {\displaystyle \mathbf {e} _{z}} , directly relates to the field of view, where α = 2 ⋅ tan − 1  ( 1 / e z ) {\displaystyle \alpha =2\cdot \tan ^{-1}(1/\mathbf {e} _{z})} is the viewed angle. (Note: This assumes that you map the points (-1,-1) and (1,1) to the corners of your viewing surface)
The above equations can also be rewritten as:
b x = ( d x s x ) / ( d z r x ) r z b y = ( d y s y ) / ( d z r y ) r z . {\displaystyle {\begin{array}{lcl}\mathbf {b} _{x}=(\mathbf {d} _{x}\mathbf {s} _{x})/(\mathbf {d} _{z}\mathbf {r} _{x})\mathbf {r} _{z}\\\mathbf {b} _{y}=(\mathbf {d} _{y}\mathbf {s} _{y})/(\mathbf {d} _{z}\mathbf {r} _{y})\mathbf {r} _{z}\\\end{array}}.}
In which s x , y {\displaystyle \mathbf {s} _{x,y}} is the display size, r x , y {\displaystyle \mathbf {r} _{x,y}} is the recording surface size (CCD or film), r z {\displaystyle \mathbf {r} _{z}} is the distance from the recording surface to the entrance pupil (camera center), and d z {\displaystyle \mathbf {d} _{z}} is the distance, from the 3D point being projected, to the entrance pupil.
Subsequent clipping and scaling operations may be necessary to map the 2D plane onto any particular display media.
Diagram[edit]
To determine which screen x-coordinate corresponds to a point at A x , A z {\displaystyle A_{x},A_{z}} multiply the point coordinates by:
B x = A x B z A z {\displaystyle B_{x}=A_{x}{\frac {B_{z}}{A_{z}}}}
where
B x {\displaystyle B_{x}} is the screen x coordinate
A x {\displaystyle A_{x}} is the model x coordinate
B z {\displaystyle B_{z}} is the focal length—the axial distance from the camera center to the image plane
A z {\displaystyle A_{z}} is the subject distance.
Because the camera is in 3D, the same works for the screen y-coordinate, substituting y for x in the above diagram and equation.
See also[edit]
Computer graphics portal
Viewing frustum
3D computer graphics
Camera matrix
Computer graphics
Graphics card
Homography
Homogeneous coordinates
Perspective (graphical)
Texture mapping
Virtual globe
Transform and lighting
References[edit]
Jump up ^ Subhashis Banerjee (2002-02-18). "The Weak-Perspective Camera".
Jump up ^ Alter, T. D. (July 1992). 3D Pose from 3 Corresponding Points under Weak-Perspective Projection (PDF) (Technical report). MIT AI Lab.
Jump up ^ Ingrid Carlbom, Joseph Paciorek (1978). "Planar Geometric Projections and Viewing Transformations" (PDF). ACM Computing Surveys. 10 (4): 465–502. doi:10.1145/356744.356750. .
Jump up ^ Riley, K F (2006). Mathematical Methods for Physics and Engineering. Cambridge University Press. pp. 931, 942. doi:10.2277/0521679710. ISBN 0-521-67971-0.
Jump up ^ Goldstein, Herbert (1980). Classical Mechanics (2nd ed.). Reading, Mass.: Addison-Wesley Pub. Co. pp. 146–148. ISBN 0-201-02918-9.
Jump up ^ Sonka, M; Hlavac, V; Boyle, R (1995). Image Processing, Analysis & Machine Vision (2nd ed.). Chapman and Hall. p. 14. ISBN 0-412-45570-6.
Further reading[edit]
Kenneth C. Finney (2004). 3D Game Programming All in One. Thomson Course. p. 93. ISBN 978-1-59200-136-1.
Koehler; Dr. Ralph. 2D/3D Graphics and Splines with Source Code. ISBN 0759611874.
External links[edit]
Wikimedia Commons has media related to 3D projection.
A case study in camera projection
Creating 3D Environments from Digital Photographs
Retrieved from "https://en.wikipedia.org/w/index.php?title=3D_projection&oldid=810823726"
Categories:
3D computer graphics
3D imaging
Display devices
Euclidean solid geometry
Functions and mappings
Graphical projections
Linear algebra
Projective geometry
Hidden categories:
Articles to be merged from May 2017
All articles to be merged
Navigation menu
Personal tools
Not logged in
Talk
Contributions
Create account
Log in
Namespaces
Article
Talk
Variants
Views
Read
Edit
View history
More
Search
Navigation
Main page
Contents
Featured content
Current events
Random article
Donate to Wikipedia
Wikipedia store
Interaction
Help
About Wikipedia
Community portal
Recent changes
Contact page
Tools
What links here
Related changes
Upload file
Special pages
Permanent link
Page information
Wikidata item
Cite this page
Print/export
Create a book
Download as PDF
Printable version
In other projects
Wikimedia Commons
Languages
العربية
Català
हिन्दी
Latviešu
Português
Slovenčina
Українська
中文
Edit links
This page was last edited on 17 November 2017, at 17:40.
Text is available under the Creative Commons Attribution-ShareAlike License; additional terms may apply. By using this site, you agree to the Terms of Use and Privacy Policy. Wikipedia® is a registered trademark of the Wikimedia Foundation, Inc., a non-profit organization.
Privacy policy
About Wikipedia
Disclaimers
Contact Wikipedia
Developers
Cookie statement
Mobile view
Enable previews

values: mw-page-base noprint

values: mw-head-base noprint

values: firstHeading firstHeading en

values: siteSub noprint

values: jump-to-nav mw-jump

value: td

value: tr

value: th

attrs: class id href

values: NavToggle NavToggle1 #

value: li

values: font-size: 105%; padding: 0.2em 0px 0.4em; text-align: left; display: none;

values:
/wiki/Exploded_view_drawing
mw-redirect
Exploded view drawing

values:
/wiki/Plans_(drawings)
mw-redirect
Plans (drawings)

values: float:right;clear:right;width:22.0em;margin:0 0 1.0em 1.0em;background:#f9f9f9;border:1px solid #aaa;padding:0.2em;border-spacing:0.4em 0;text-align:center;line-height:1.4em;font-size:88%

values:
plainlinks metadata ambox ambox-move
presentation

values: vertical-align: -0.671ex; width:2.42ex; height:2.009ex;

values: vertical-align: -1.005ex; width:2.297ex; height:2.343ex;

values: vertical-align: -0.671ex; width:2.249ex; height:2.009ex;

values: vertical-align: -0.671ex; width:2.188ex; height:2.509ex;

values: vertical-align: -1.005ex; width:2.065ex; height:2.843ex;

values: vertical-align: -0.671ex; width:15.046ex; height:2.509ex;

values: vertical-align: -1.005ex; width:14.41ex; height:2.843ex;

values: vertical-align: -4.171ex; width:36.529ex; height:9.509ex;

values: Edit section: Weak perspective projection

values: vertical-align: -0.671ex; width:2.405ex; height:2.509ex;

values: vertical-align: -0.671ex; width:4.285ex; height:2.509ex;

values: vertical-align: -3.671ex; width:10.667ex; height:8.509ex;

values: vertical-align: -0.671ex; margin-left: -0.042ex; width:5.048ex; height:2.509ex;

values: vertical-align: -1.005ex; width:5.021ex; height:2.343ex;

values: vertical-align: -1.005ex; width:4.909ex; height:2.343ex;

values: vertical-align: -1.005ex; width:4.812ex; height:2.843ex;

values: vertical-align: -1.005ex; width:4.946ex; height:2.343ex;

values: vertical-align: -1.005ex; width:3.965ex; height:2.843ex;

values: vertical-align: -0.338ex; width:1.31ex; height:1.676ex;

values: vertical-align: -1.005ex; width:16.113ex; height:3.009ex;

values: {\mathbf  {c}}_{{x,y,z}}=\langle 0,0,0\rangle ,

values: vertical-align: -1.005ex; width:16.016ex; height:3.009ex;

values: {\mathbf  {\theta }}_{{x,y,z}}=\langle 0,0,0\rangle ,

values: vertical-align: -0.838ex; width:7.438ex; height:2.843ex;

values: vertical-align: -0.838ex; width:5.22ex; height:2.843ex;

values: vertical-align: -1.005ex; width:5.206ex; height:2.843ex;

values: vertical-align: -0.338ex; width:1.101ex; height:2.176ex;

values: vertical-align: -0.338ex; width:1.198ex; height:1.676ex;

values: vertical-align: -0.338ex; width:2.919ex; height:2.176ex;

values: vertical-align: -4.338ex; width:107.454ex; height:9.843ex;

values: vertical-align: -1.005ex; width:15.358ex; height:3.009ex;

values: {\mathbf  {\theta }}_{{x,y,z}}=\langle 0,0,0\rangle

values: vertical-align: -0.338ex; width:10.621ex; height:2.176ex;

values: {\mathbf  {d}}={\mathbf  {a}}-{\mathbf  {c}}.

values: vertical-align: -4.188ex; margin-bottom: -0.317ex; width:47.173ex; height:10.176ex;

values: vertical-align: -3.505ex; width:21.179ex; height:8.176ex;

values: vertical-align: -7.171ex; width:34.595ex; height:15.509ex;

values: vertical-align: -2.671ex; width:15.971ex; height:6.509ex;

values: vertical-align: -0.671ex; width:2.245ex; height:2.009ex;

values: vertical-align: -0.838ex; width:19.629ex; height:3.176ex;

values: vertical-align: -2.671ex; width:23.867ex; height:6.509ex;

values: vertical-align: -1.005ex; width:3.535ex; height:2.343ex;

values: vertical-align: -1.005ex; width:3.582ex; height:2.343ex;

values: vertical-align: -0.671ex; width:2.122ex; height:2.009ex;

values: vertical-align: -0.671ex; width:2.505ex; height:2.509ex;

values: vertical-align: -0.671ex; width:6.74ex; height:2.676ex;

values: vertical-align: -2.338ex; width:12.616ex; height:5.843ex;

values: vertical-align: -0.671ex; width:2.954ex; height:2.509ex;

values: vertical-align: -0.671ex; width:2.933ex; height:2.676ex;

values: vertical-align: -0.671ex; width:2.784ex; height:2.509ex;

values:
/wiki/Camera_center
mw-redirect
Camera center

values: vertical-align: -0.671ex; width:2.763ex; height:2.676ex;

values: display:table-cell;padding:0.2em 0.2em 0.2em 0.3em;vertical-align:middle

values: margin:0.5em 0 0.5em 1em;border:solid #aaa 1px

values:
/wiki/Graphics_card
mw-redirect
Graphics card

values:
/wiki/Transform_and_lighting
mw-redirect
Transform and lighting

values:
nofollow
external text
//doi.org/10.1145%2F356744.356750

values:
nofollow
external text
//doi.org/10.2277%2F0521679710

values:
reflist mw-references-wrap
list-style-type: decimal;

values: Category:Articles to be merged from May 2017

values: Discussion about edits from this IP address [ctrl-alt-n]

values: A list of edits made from this IP address [ctrl-alt-y]

values: You are encouraged to create an account and log in; however, it is not mandatory

values: You're encouraged to log in; however, it's not mandatory. [ctrl-alt-o]

values:
/wiki/3D_projection
View the content page [ctrl-alt-c]
c

values: Discussion about the content page [ctrl-alt-t]

values: p-namespaces navigation vectorTabs p-namespaces-label

values:
p-variants
navigation
vectorMenu emptyPortlet
p-variants-label

values: Past revisions of this page [ctrl-alt-h]

values: p-views navigation vectorTabs p-views-label

values:
p-cactions
navigation
vectorMenu emptyPortlet
p-cactions-label

values:
mw-wiki-logo
/wiki/Main_Page
Visit the main page

values:
/wiki/Main_Page
Visit the main page [ctrl-alt-z]
z

values: Featured content – the best of Wikipedia

values: Find background information on current events

values:
/wiki/Special:Random
Load a random article [ctrl-alt-x]
x

values: portal navigation p-navigation p-navigation-label

values: Guidance on how to use and edit Wikipedia

values: About the project, what you can do, where to find things

values: A list of recent changes in the wiki [ctrl-alt-r]

values: portal navigation p-interaction p-interaction-label

values: List of all English Wikipedia pages containing links to this page [ctrl-alt-j]

values: Recent changes in pages linked from this page [ctrl-alt-k]

values:
/wiki/Wikipedia:File_Upload_Wizard
Upload files [ctrl-alt-u]
u

values: A list of all special pages [ctrl-alt-q]

values: Permanent link to this revision of the page

values: Link to connected data repository item [ctrl-alt-g]

values: Printable version of this page [ctrl-alt-p]

values: portal navigation p-wikibase-otherprojects p-wikibase-otherprojects-label

values:
uls-settings-trigger
Language settings
0
button
true

values: إسقاط تمثيلي ثلاثي الأبعاد – Arabic

values: त्रिविम प्रक्षेप – Hindi

values: /static/images/wikimedia-button-1.5x.png 1.5x, /static/images/wikimedia-button-2x.png 2x

values: /static/images/poweredby_mediawiki_132x47.png 1.5x, /static/images/poweredby_mediawiki_176x62.png 2x

values:
suggestions
display: none; font-size: 13px;

values: mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject page-3D_projection rootpage-3D_projection skin-vector action-view


text:
Joy Harmon
From Wikipedia, the free encyclopedia
Jump to: navigation, search
Joy Harmon
Harmon with Roger Smith in an episode of Mister Roberts, 1965.
Born
Joy Patricia Harmon
(1940-05-01) May 1, 1940 (age 77)
Flushing, New York, U.S.
Years active
1956–1973
Known for
Car washing girl in
Cool Hand Luke
Spouse(s)
Jeff Gourson (1968–2001); 3 children
Website
http://www.auntjoyscakes.com
Joy Patricia Harmon (born May 1, 1940)[1] is a baker and former American actress.
Career[edit]
Joy Patricia Harmon was born in Flushing, New York.[1] She and her family moved to Connecticut in 1946.[1] A Miss Connecticut,[1] Harmon was a contestant during the last season of Groucho Marx's television program You Bet Your Life (titled The Groucho Show during its last season), and later a regular on Marx's program Tell It to Groucho (credited as "Patty Harmon"). She guest-starred on several 1960s TV series, including Gidget, Batman, and The Monkees. She appeared in a cameo role as blonde Ardice in the Jack Lemmon comedy Under the Yum Yum Tree in 1963. She had a role as Tony Dow's girlfriend in the 1965–66 television soap opera, Never Too Young.
Harmon's best-remembered acting roles are as the thirty-foot-tall (9 m) Merrie in Village of the Giants (1965, in which she captures normal-sized Johnny Crawford and suspends him from her bikini top), and as the car-washing "Lucille" in Cool Hand Luke (1967) and her purportedly 41–22–36. measurements.[1]
Aunt Joy's Cakes[edit]
In the 21st century, Harmon founded Aunt Joy's Cakes, a bakery in Burbank, California.[2]
Personal life[edit]
^ Jump up to: a b c d e Listanti, Tom (2008). Glamor Girls of Sixties Hollywood: Seventy-Five Profiles. McFarland & Co., Inc. pp. 87–88. ISBN 978-0-7864-3172-4. Retrieved June 29, 2017. Her amble [sic] bosom (41–22–36) was her ticket to Broadway in the comedy Make Me Laugh...
Jump up ^ "About Us". Aunt Joy's Cakes. Archived from the original on August 20, 2013.
Retrieved from "https://en.wikipedia.org/w/index.php?title=Joy_Harmon&oldid=812236277"
Hidden categories:
Articles with hCards
Navigation menu
Personal tools
Not logged in
Talk
Contributions
Create account
Log in
Namespaces
Article
Talk
Variants
Views
Read
Edit
View history
More
Search
Navigation
Main page
Contents
Featured content
Current events
Random article
Donate to Wikipedia
Wikipedia store
Interaction
Help
About Wikipedia
Community portal
Recent changes
Contact page
Tools
What links here
Related changes
Upload file
Special pages
Permanent link
Page information
Wikidata item
Cite this page
Print/export
Create a book
Download as PDF
Printable version
Languages
Deutsch
Edit links
This page was last edited on 26 November 2017, at 20:14.
Text is available under the Creative Commons Attribution-ShareAlike License; additional terms may apply. By using this site, you agree to the Terms of Use and Privacy Policy. Wikipedia® is a registered trademark of the Wikimedia Foundation, Inc., a non-profit organization.
Privacy policy
About Wikipedia
Disclaimers
Contact Wikipedia
Developers
Cookie statement
Mobile view
Enable previews

values: mw-page-base noprint

values: mw-head-base noprint

values: firstHeading firstHeading en

values: siteSub noprint

values: jump-to-nav mw-jump

value: span

attrs: colspan style

values: Joy Harmon Roger Smith Mister Roberts 1965.JPG

value: i

values:
nofollow
external free
http://www.auntjoyscakes.com

values:
/wiki/Flushing,_New_York
mw-redirect
Flushing, New York

values:
nofollow
external text
http://www.auntjoyscakes.com

values: catlinks catlinks-allhidden mw-hidden-catlinks mw-hidden-cats-hidden

values: Discussion about edits from this IP address [ctrl-alt-n]

values: A list of edits made from this IP address [ctrl-alt-y]

values: You are encouraged to create an account and log in; however, it is not mandatory

values: You're encouraged to log in; however, it's not mandatory. [ctrl-alt-o]

values:
/wiki/Joy_Harmon
View the content page [ctrl-alt-c]
c

values: Discussion about the content page [ctrl-alt-t]

values: p-namespaces navigation vectorTabs p-namespaces-label

values:
p-variants
navigation
vectorMenu emptyPortlet
p-variants-label

values: Past revisions of this page [ctrl-alt-h]

values: p-views navigation vectorTabs p-views-label

values:
p-cactions
navigation
vectorMenu emptyPortlet
p-cactions-label

values:
mw-wiki-logo
/wiki/Main_Page
Visit the main page

values:
/wiki/Main_Page
Visit the main page [ctrl-alt-z]
z

values: Featured content – the best of Wikipedia

values: Find background information on current events

values:
/wiki/Special:Random
Load a random article [ctrl-alt-x]
x

values: portal navigation p-navigation p-navigation-label

values: Guidance on how to use and edit Wikipedia

values: mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject page-Joy_Harmon rootpage-Joy_Harmon skin-vector action-view