<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
	<head>
		<title>modelY() \ Language (API) \ Processing 2+</title>

		<link rel="icon" href="/favicon.ico" type="image/x-icon" />

		<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
		<meta name="Author" content="Processing Foundation" />
		<meta name="Publisher" content="Processing Foundation" />
		<meta name="Keywords" content="Processing, Sketchbook, Programming, Coding, Code, Art, Design" />
		<meta name="Description" content="Processing is a flexible software sketchbook and a language for learning how to code within the context of the visual arts. Since 2001, Processing has promoted software literacy within the visual arts and visual literacy within technology." />
		<meta name="Copyright" content="All contents copyright the Processing Foundation, Ben Fry, Casey Reas, and the MIT Media Laboratory" />

		<script src="javascript/modernizr-2.6.2.touch.js" type="text/javascript"></script>
		<link href="css/style.css" rel="stylesheet" type="text/css" />

	</head>
	<body id="Langauge-en" onload="" >

		<!-- ==================================== PAGE ============================ -->
		<div id="container">


			<!-- ==================================== HEADER ============================ -->

			<div id="ribbon">
				<ul class="left">
					<li class="highlight"><a href="http://processing.org/">Processing</a></li>
					<li><a href="http://p5js.org/">p5.js</a></li>
					<li><a href="http://py.processing.org/">Processing.py</a></li>
					<li><a href="http://android.processing.org/">Processing for Android</a></li>
				</ul>
				<ul class="right">
					<li><a href="https://processingfoundation.org/">Processing Foundation</a></li>
				</ul>
				<div class="clear"></div>
			</div>
			<div id="header">
				<a href="/" title="Back to the Processing cover."><div class="processing-logo no-cover" alt="Processing cover"></div></a>
				<form name="search" method="get" action="//www.google.com/search">
				       <p><input type="hidden" name="as_sitesearch" value="processing.org" />
				       <input type="text" name="as_q" value="" size="20" class="text" />
				       <input type="submit" value=" " /></p>
				</form>
			</div>
			<a id="TOP" name="TOP"></a>

			<div id="navigation">
				<div class="navBar" id="mainnav">
	<a href="index.html" class='active'>Language</a><br>
	<a href="libraries/index.html" >Libraries</a><br>
	<a href="tools/index.html">Tools</a><br>
	<a href="environment/index.html">Environment</a><br>
</div>

<script> document.querySelectorAll(".processing-logo")[0].className = "processing-logo"; </script>
			</div>

			<!-- ==================================== CONTENT - Headers ============================ -->
			<div class="content">

			 <p class="ref-notice">This reference is for Processing 3.0+. If you have a previous version, use the reference included with your software in the Help menu. If you see any errors or have suggestions, <a href="https://github.com/processing/processing-docs/issues?state=open">please let us know</a>. If you prefer a more technical reference, visit the <a href="http://processing.github.io/processing-javadocs/core/">Processing Core Javadoc</a> and <a href="http://processing.github.io/processing-javadocs/libraries/">Libraries Javadoc</a>.</p>

<table cellpadding="0" cellspacing="0" border="0" class="ref-item">


	<tr class="name-row">
		<th scope="row">Name</th>

		<td><h3>modelY()</h3></td>
	</tr>

	<tr class="">

	<tr class=""><th scope="row">Examples</th><td><div class="example"><pre >
void setup() {
  size(500, 500, P3D);
  noFill();
}

void draw() {
  background(0);
 
  pushMatrix();
  // start at the middle of the screen
  translate(width/2, height/2, -200);     
  // some random rotation to make things interesting
  rotateY(1.0); //yrot);
  rotateZ(2.0); //zrot);
  // rotate in X a little more each frame
  rotateX(frameCount / 100.0);
  // offset from center
  translate(0, 150, 0);
 
  // draw a white box outline at (0, 0, 0)
  stroke(255);
  box(50);
 
  // the box was drawn at (0, 0, 0), store that location
  float x = modelX(0, 0, 0);
  float y = modelY(0, 0, 0);
  float z = modelZ(0, 0, 0);
  // clear out all the transformations
  popMatrix();

  // draw another box at the same (x, y, z) coordinate as the other
  pushMatrix();
  translate(x, y, z);
  stroke(255, 0, 0);
  box(50);
  popMatrix();
} 
</pre></div>
</td></tr>

		<tr class="">
		<th scope="row">Description</th>
		<td>
Returns the three-dimensional X, Y, Z position in model space. This returns the Y value for a given coordinate based on the current set of transformations (scale, rotate, translate, etc.) The Y value can be used to place an object in space relative to the location of the original point once the transformations are no longer in use.<br /> 
<br />
In the example, the <b>modelX()</b>, <b>modelY()</b>, and <b>modelZ()</b> functions record the location of a box in space after being placed using a series of translate and rotate commands. After popMatrix() is called, those transformations no longer apply, but the (x, y, z) coordinate returned by the model functions is used to place another box in the same location.
</td>
	</tr>

	<tr class=""><th scope="row">Syntax</th><td><pre>modelY(<kbd>x</kbd>, <kbd>y</kbd>, <kbd>z</kbd>)</pre></td></tr>

	<tr class="">	<th scope="row">Parameters</th><td><table cellpadding="0" cellspacing="0" border="0"><tr class="">
<th scope="row" class="code">x</th>
<td>float: 3D x-coordinate to be mapped</td>
</tr>
<tr class="">
<th scope="row" class="code">y</th>
<td>float: 3D y-coordinate to be mapped</td>
</tr>
<tr class="">
<th scope="row" class="code">z</th>
<td>float: 3D z-coordinate to be mapped</td>
</tr></table></td>	</tr>
	<tr class=""><th scope="row">Returns</th><td class="code">float</td></tr>
	<tr class=""><th scope="row">Related</th><td><a class="code" href="modelX_.html">modelX()</a><br />
<a class="code" href="modelZ_.html">modelZ()</a><br /></td></tr>
</table>

Updated on July 30, 2016 04:31:58am EDT<br /><br />

<!-- Creative Commons License -->

<div class="license">
	<a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/4.0/"><img alt="Creative Commons License" style="border: none" src="http://i.creativecommons.org/l/by-nc-sa/4.0/88x31.png" /></a>
</div>
<!--

<?xpacket begin='' id=''?>
<x:xmpmeta xmlns:x='adobe:ns:meta/'>
  <rdf:RDF xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#'>
    <rdf:Description rdf:about=''
		     xmlns:xapRights='http://ns.adobe.com/xap/1.0/rights/'>
      <xapRights:Marked>True</xapRights:Marked>
    </rdf:Description>
    <rdf:Description rdf:about=''
		     xmlns:xapRights='http://ns.adobe.com/xap/1.0/rights/'
		     >
      <xapRights:UsageTerms>
	<rdf:Alt>
	  <rdf:li xml:lang='x-default' >This work is licensed under a &lt;a rel=&#34;license&#34; href=&#34;http://creativecommons.org/licenses/by-nc-sa/4.0/&#34;&gt;Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License&lt;/a&gt;.</rdf:li>
	  <rdf:li xml:lang='en' >This work is licensed under a &lt;a rel=&#34;license&#34; href=&#34;http://creativecommons.org/licenses/by-nc-sa/4.0/&#34;&gt;Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License&lt;/a&gt;.</rdf:li>
	  </rdf:Alt>
      </xapRights:UsageTerms>
    </rdf:Description>
    <rdf:Description rdf:about=''
      xmlns:cc='http://creativecommons.org/ns#'>
      <cc:license rdf:resource='http://creativecommons.org/licenses/by-nc-sa/4.0/'/>
    </rdf:Description>

  </rdf:RDF>
</x:xmpmeta>
<?xpacket end='r'?>

-->

			</div>

			<!-- ==================================== FOOTER ============================ -->
  			<div id="footer">

    			<div id="copyright">Processing is an open project intiated by <a href="http://benfry.com/">Ben Fry</a> and <a href="http://reas.com">Casey Reas</a>. It is developed by a <a href="http://processing.org/about/people/">team of volunteers</a>.</div>
    			<div id="colophon">

                    <a href="copyright.html">&copy; Info</a>

                </div>
  			</div>

		</div>
		<script src="javascript/jquery-1.9.1.min.js"></script>
		<script src="javascript/site.js" type="text/javascript"></script>
	</body>
</html>
