{"id":2061,"date":"2024-12-16T08:20:47","date_gmt":"2024-12-16T13:20:47","guid":{"rendered":"https:\/\/blogs.mathworks.com\/graphics-and-apps\/?p=2061"},"modified":"2024-12-16T10:08:52","modified_gmt":"2024-12-16T15:08:52","slug":"pinecode-creating-pinecones-with-fibonacci-spirals","status":"publish","type":"post","link":"https:\/\/blogs.mathworks.com\/graphics-and-apps\/2024\/12\/16\/pinecode-creating-pinecones-with-fibonacci-spirals\/","title":{"rendered":"Pinecode: Creating pinecones with Fibonacci spirals"},"content":{"rendered":"<div class=\"rtcContent\">\r\n<div style=\"margin: 2px 10px 9px 4px;padding: 0px;line-height: 21px;min-height: 0px;font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif;font-style: normal;font-size: 14px;font-weight: 400;text-align: left\">Today we explore phyllotactic spirals, a naturally emerging pattern found in densely packed plant structures such as pineapples, sunflowers, and pinecones. This generative spiral is based on <em>tau<\/em>, a constant angular offset between successive seeds or scales. When <em>tau<\/em> equals 2\u03c0 times the golden ratio, $\\frac{1+\\sqrt{5}}{2}\\approx 1\\ldotp 618$ the pattern is known as a Fibonacci spiral. Experiment with different values of <em>tau<\/em> to see how the spirals transform.<\/div>\r\n<div><\/div>\r\n<div><img decoding=\"async\" loading=\"lazy\" class=\"imageNode alignleft\" style=\"vertical-align: baseline;width: 201px;height: 192px\" src=\"http:\/\/blogs.mathworks.com\/graphics-and-apps\/files\/2024\/12\/pineconeplay.mlx-12-13-24_1.png\" alt=\"\" width=\"201\" height=\"192\" \/><\/div>\r\n<div class=\"preformatted-matlab\" style=\"margin: 10px 3px 10px 55px;padding: 10px 10px 10px 5px\">\r\n<div style=\"text-align: left\"><\/div>\r\n<div style=\"text-align: left\"><\/div>\r\n<div style=\"border-radius: 0px;padding: 0px;line-height: 15.6px;min-height: 16px;font-family: Menlo, Monaco, Consolas, 'Courier New', monospace;font-size: 12px;text-align: left\">tau = pi*(1+sqrt(5));<\/div>\r\n<div style=\"border-radius: 0px;padding: 0px;line-height: 15.6px;min-height: 16px;font-family: Menlo, Monaco, Consolas, 'Courier New', monospace;font-size: 12px;text-align: left\">n = 1:300;<\/div>\r\n<div style=\"border-radius: 0px;padding: 0px;line-height: 15.6px;min-height: 16px;font-family: Menlo, Monaco, Consolas, 'Courier New', monospace;font-size: 12px;text-align: left\">r = sqrt(n);<\/div>\r\n<div style=\"border-radius: 0px;padding: 0px;line-height: 15.6px;min-height: 16px;font-family: Menlo, Monaco, Consolas, 'Courier New', monospace;font-size: 12px;text-align: left\">theta = n * tau;<\/div>\r\n<div style=\"border-radius: 0px;padding: 0px;line-height: 15.6px;min-height: 16px;font-family: Menlo, Monaco, Consolas, 'Courier New', monospace;font-size: 12px;text-align: left\">polarscatter(theta,r,'bo')<\/div>\r\n<\/div>\r\n<div style=\"margin: 2px 10px 9px 4px;padding: 0px;line-height: 21px;min-height: 0px;font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif;font-style: normal;font-size: 14px;font-weight: 400;text-align: justify\"><\/div>\r\n<\/div>\r\n<div><\/div>\r\n<div><\/div>\r\n<div class=\"rtcContent\">\r\n<div style=\"margin: 2px 10px 9px 4px;padding: 0px;line-height: 21px;min-height: 0px;font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif;font-style: normal;font-size: 14px;font-weight: 400;text-align: left\">Eric applies this principle to the 3D Cartesian domain in his parameterized pinecode.<\/div>\r\n<div>\r\n\r\n<hr \/>\r\n\r\n<\/div>\r\n<\/div>\r\n<table style=\"background-color: #e2f0ff\">\r\n<tbody>\r\n<tr>\r\n<td style=\"width: 120px;padding: 3px;vertical-align: middle\"><img decoding=\"async\" loading=\"lazy\" class=\"alignleft wp-image-405 size-full\" src=\"http:\/\/blogs.mathworks.com\/graphics-and-apps\/files\/2023\/10\/EricPortrait.png\" alt=\"\" width=\"150\" height=\"150\" \/><\/td>\r\n<td style=\"vertical-align: middle;padding: 3px\"><strong>Guest Writer: <span style=\"font-weight: bold\"><a href=\"https:\/\/www.mathworks.com\/matlabcentral\/profile\/authors\/869244\" target=\"_blank\" rel=\"noopener\">Eric Ludlam<\/a><\/span><\/strong>\r\n\r\nEric, a seasoned MATLAB graphics expert, shares his approach to replicating the natural patterns of a pinecone through code. Learn about pinecone geometry and the efficacy of parameterized graphics. See Eric's full bio on our <a href=\"https:\/\/blogs.mathworks.com\/graphics-and-apps\/contributors\/\" target=\"_blank\" rel=\"noopener\">contributors page<\/a>.<\/td>\r\n<\/tr>\r\n<\/tbody>\r\n<\/table>\r\n<div class=\"rtcContent\">\r\n<div class=\"rtcContent\">\r\n<div><\/div>\r\n<div style=\"margin: 2px 10px 9px 4px;padding: 0px;line-height: 21px;min-height: 0px;font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif;font-style: normal;font-size: 14px;font-weight: 400;text-align: left\">Let's explore a graphics algorithm for creating a pinecone. Here are a couple pictures of pinecones I found. This first was on the coast in Maine, and the second I found along a hiking trail near the MathWorks campus in Natick, Massachusetts.<\/div>\r\n<div style=\"margin: 2px 10px 9px 4px;padding: 0px;line-height: 21px;min-height: 0px;font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif;font-style: normal;font-size: 14px;font-weight: 400;text-align: left\"><img decoding=\"async\" loading=\"lazy\" class=\"imageNode\" style=\"vertical-align: baseline;width: 206px;height: 229px\" src=\"http:\/\/blogs.mathworks.com\/graphics-and-apps\/files\/2024\/12\/pineconeplay.mlx-12-13-24_2.png\" alt=\"pc_ontree.jpg\" width=\"206\" height=\"229\" \/> <img decoding=\"async\" loading=\"lazy\" class=\"imageNode\" style=\"vertical-align: baseline;width: 241px;height: 230px\" src=\"http:\/\/blogs.mathworks.com\/graphics-and-apps\/files\/2024\/12\/pineconeplay.mlx-12-13-24_3.png\" alt=\"\" width=\"241\" height=\"230\" \/><\/div>\r\n<div style=\"margin: 2px 10px 9px 4px;padding: 0px;line-height: 21px;min-height: 0px;font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif;font-style: normal;font-size: 14px;font-weight: 400;text-align: left\">Pinecones are made of \"scales\", which you can think of as petals on a flower. In this article, \"scale\" specifically refers to these structures on the pinecone and not to the common mathematical transformation.<\/div>\r\n<div style=\"margin: 2px 10px 9px 4px;padding: 0px;line-height: 21px;min-height: 0px;font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif;font-style: normal;font-size: 14px;font-weight: 400;text-align: left\">The pinecone pictured on the left has a shape like an upside-down teardrop. The scales are wide and get smaller and more densely packed near the base. The base of the pinecone on the right shows how the scales radiate outward in a Fibonacci spiral, highlighted with yellow dots.<\/div>\r\n<div style=\"margin: 2px 10px 9px 4px;padding: 0px;line-height: 21px;min-height: 0px;font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif;font-style: normal;font-size: 14px;font-weight: 400;text-align: left\">The pinecone algorithm below attempts to replicate these patterns in a single surface object. It starts with a Fibonacci spiral which helps us compute the locations of the tips for each of the scales. Next, we compute the shape of one scale and replicate that shape for each location computed in our spiral.<\/div>\r\n<div style=\"margin: 2px 10px 9px 4px;padding: 0px;line-height: 21px;min-height: 0px;font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif;font-style: normal;font-size: 14px;font-weight: 400;text-align: left\">At the end, I add a little branch and some pine needles using a line and patch.<\/div>\r\n<div style=\"margin: 2px 10px 9px 4px;padding: 0px;line-height: 21px;min-height: 0px;font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif;font-style: normal;font-size: 14px;font-weight: 400;text-align: left\">If you open this blog post in MATLAB Online using the link below, all the parameters at the beginning of the script can be manipulated with sliders and color pickers making it easy for you to design your own pinecone!<\/div>\r\n<div style=\"margin: 2px 10px 9px 4px;padding: 0px;line-height: 21px;min-height: 0px;font-family: Helvetica, Arial, sans-serif, Helvetica, Arial, sans-serif;font-style: normal;font-size: 14px;font-weight: 400;text-align: left\">Click here to try it!<\/div>\r\n<\/div>\r\n<div><a href=\"https:\/\/matlab.mathworks.com\/open\/github\/v1?repo=MATLAB-Graphics-and-App-Building\/matlab-gaab-blog-2024&amp;file=PineconesWithFibonacciSpirals\/pineconeplay.mlx\"><img decoding=\"async\" loading=\"lazy\" class=\"alignnone wp-image-2010\" src=\"http:\/\/blogs.mathworks.com\/graphics-and-apps\/files\/2024\/11\/PumpkinDesignerAndFocusMode.mlx-11-23-24_5.png\" alt=\"\" width=\"160\" height=\"24\" \/><\/a><\/div>\r\n<div class=\"rtcContent\">\r\n<div style=\"background-color: #f5f5f5;margin: 10px 15px 10px 0;min-width: 100%\">\r\n<div class=\"inlineWrapper\">\r\n<div style=\"border-left: 0.666667px solid #d9d9d9;border-right: 0.666667px solid #d9d9d9;border-top: 0.666667px solid #d9d9d9;border-bottom: 0px none #212121;border-radius: 4px 4px 0px 0px;padding: 6px 45px 0px 13px;line-height: 18.004px;min-height: 0px;color: #212121;font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace;font-size: 14px\"><span style=\"color: #008013\">% Pinecone Attributes<\/span><\/div>\r\n<\/div>\r\n<div class=\"inlineWrapper\">\r\n<div style=\"border-left: 0.666667px solid #d9d9d9;border-right: 0.666667px solid #d9d9d9;border-top: 0px none #212121;border-bottom: 0px none #212121;border-radius: 0px;padding: 0px 45px 0px 13px;line-height: 18.004px;min-height: 0px;color: #212121;font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace;font-size: 14px\">nscales = 140; <span style=\"color: #008013\">% Number of scales<\/span><\/div>\r\n<\/div>\r\n<div class=\"inlineWrapper\">\r\n<div style=\"border-left: 0.666667px solid #d9d9d9;border-right: 0.666667px solid #d9d9d9;border-top: 0px none #212121;border-bottom: 0px none #212121;border-radius: 0px;padding: 0px 45px 0px 13px;line-height: 18.004px;min-height: 0px;color: #212121;font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace;font-size: 14px\">height = 2.5; <span style=\"color: #008013\">% Height of inner part of pinecone<\/span><\/div>\r\n<\/div>\r\n<div class=\"inlineWrapper\">\r\n<div style=\"border-left: 0.666667px solid #d9d9d9;border-right: 0.666667px solid #d9d9d9;border-top: 0px none #212121;border-bottom: 0px none #212121;border-radius: 0px;padding: 0px 45px 0px 13px;line-height: 18.004px;min-height: 0px;color: #212121;font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace;font-size: 14px\">swt = 0.3; <span style=\"color: #008013\">% Scale width in theta<\/span><\/div>\r\n<\/div>\r\n<div class=\"inlineWrapper\">\r\n<div style=\"border-left: 0.666667px solid #d9d9d9;border-right: 0.666667px solid #d9d9d9;border-top: 0px none #212121;border-bottom: 0px none #212121;border-radius: 0px;padding: 0px 45px 0px 13px;line-height: 18.004px;min-height: 0px;color: #212121;font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace;font-size: 14px\">sth = 0.2; <span style=\"color: #008013\">% Scale thickness (as a curve in height)<\/span><\/div>\r\n<\/div>\r\n<div class=\"inlineWrapper\">\r\n<div style=\"border-left: 0.666667px solid #d9d9d9;border-right: 0.666667px solid #d9d9d9;border-top: 0px none #212121;border-bottom: 0px none #212121;border-radius: 0px;padding: 0px 45px 0px 13px;line-height: 18.004px;min-height: 0px;color: #212121;font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace;font-size: 14px\">stilt = 1.2; <span style=\"color: #008013\">% From inside to outside, tile of each scale<\/span><\/div>\r\n<\/div>\r\n<div class=\"inlineWrapper\">\r\n<div style=\"border-left: 0.666667px solid #d9d9d9;border-right: 0.666667px solid #d9d9d9;border-top: 0px none #212121;border-bottom: 0px none #212121;border-radius: 0px;padding: 0px 45px 0px 13px;line-height: 18.004px;min-height: 0px;color: #212121;font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace;font-size: 14px\">nn = 18; <span style=\"color: #008013\">% Number of needles<\/span><\/div>\r\n<\/div>\r\n<div class=\"inlineWrapper\">\r\n<div style=\"border-left: 0.666667px solid #d9d9d9;border-right: 0.666667px solid #d9d9d9;border-top: 0px none #212121;border-bottom: 0px none #212121;border-radius: 0px;padding: 0px 45px 0px 13px;line-height: 18.004px;min-height: 0px;color: #212121;font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace;font-size: 14px\"><\/div>\r\n<\/div>\r\n<div class=\"inlineWrapper\">\r\n<div style=\"border-left: 0.666667px solid #d9d9d9;border-right: 0.666667px solid #d9d9d9;border-top: 0px none #212121;border-bottom: 0px none #212121;border-radius: 0px;padding: 0px 45px 0px 13px;line-height: 18.004px;min-height: 0px;color: #212121;font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace;font-size: 14px\"><span style=\"color: #008013\">% Exponents for curves<\/span><\/div>\r\n<\/div>\r\n<div class=\"inlineWrapper\">\r\n<div style=\"border-left: 0.666667px solid #d9d9d9;border-right: 0.666667px solid #d9d9d9;border-top: 0px none #212121;border-bottom: 0px none #212121;border-radius: 0px;padding: 0px 45px 0px 13px;line-height: 18.004px;min-height: 0px;color: #212121;font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace;font-size: 14px\">hexp = 2.8; <span style=\"color: #008013\">% scale density over height<\/span><\/div>\r\n<\/div>\r\n<div class=\"inlineWrapper\">\r\n<div style=\"border-left: 0.666667px solid #d9d9d9;border-right: 0.666667px solid #d9d9d9;border-top: 0px none #212121;border-bottom: 0px none #212121;border-radius: 0px;padding: 0px 45px 0px 13px;line-height: 18.004px;min-height: 0px;color: #212121;font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace;font-size: 14px\">rexp = 2; <span style=\"color: #008013\">% radius shape across height<\/span><\/div>\r\n<\/div>\r\n<div class=\"inlineWrapper\">\r\n<div style=\"border-left: 0.666667px solid #d9d9d9;border-right: 0.666667px solid #d9d9d9;border-top: 0px none #212121;border-bottom: 0px none #212121;border-radius: 0px;padding: 0px 45px 0px 13px;line-height: 18.004px;min-height: 0px;color: #212121;font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace;font-size: 14px\">scexp = 3; <span style=\"color: #008013\">% scale rounded shape (end)<\/span><\/div>\r\n<\/div>\r\n<div class=\"inlineWrapper\">\r\n<div style=\"border-left: 0.666667px solid #d9d9d9;border-right: 0.666667px solid #d9d9d9;border-top: 0px none #212121;border-bottom: 0px none #212121;border-radius: 0px;padding: 0px 45px 0px 13px;line-height: 18.004px;min-height: 0px;color: #212121;font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace;font-size: 14px\">suexp = 3; <span style=\"color: #008013\">% scale roundness in height<\/span><\/div>\r\n<\/div>\r\n<div class=\"inlineWrapper\">\r\n<div style=\"border-left: 0.666667px solid #d9d9d9;border-right: 0.666667px solid #d9d9d9;border-top: 0px none #212121;border-bottom: 0px none #212121;border-radius: 0px;padding: 0px 45px 0px 13px;line-height: 18.004px;min-height: 0px;color: #212121;font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace;font-size: 14px\">stexp = 2.1; <span style=\"color: #008013\">% scale tilt for height<\/span><\/div>\r\n<\/div>\r\n<div class=\"inlineWrapper\">\r\n<div style=\"border-left: 0.666667px solid #d9d9d9;border-right: 0.666667px solid #d9d9d9;border-top: 0px none #212121;border-bottom: 0px none #212121;border-radius: 0px;padding: 0px 45px 0px 13px;line-height: 18.004px;min-height: 0px;color: #212121;font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace;font-size: 14px\">stuexp = 2; <span style=\"color: #008013\">% scale thickness of U by height<\/span><\/div>\r\n<\/div>\r\n<div class=\"inlineWrapper\">\r\n<div style=\"border-left: 0.666667px solid #d9d9d9;border-right: 0.666667px solid #d9d9d9;border-top: 0px none #212121;border-bottom: 0px none #212121;border-radius: 0px;padding: 0px 45px 0px 13px;line-height: 18.004px;min-height: 0px;color: #212121;font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace;font-size: 14px\">cexp = 2; <span style=\"color: #008013\">% color gradient<\/span><\/div>\r\n<\/div>\r\n<div class=\"inlineWrapper\">\r\n<div style=\"border-left: 0.666667px solid #d9d9d9;border-right: 0.666667px solid #d9d9d9;border-top: 0px none #212121;border-bottom: 0px none #212121;border-radius: 0px;padding: 0px 45px 0px 13px;line-height: 18.004px;min-height: 0px;color: #212121;font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace;font-size: 14px\"><\/div>\r\n<\/div>\r\n<div class=\"inlineWrapper\">\r\n<div style=\"border-left: 0.666667px solid #d9d9d9;border-right: 0.666667px solid #d9d9d9;border-top: 0px none #212121;border-bottom: 0px none #212121;border-radius: 0px;padding: 0px 45px 0px 13px;line-height: 18.004px;min-height: 0px;color: #212121;font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace;font-size: 14px\"><span style=\"color: #008013\">% Colors<\/span><\/div>\r\n<\/div>\r\n<div class=\"inlineWrapper\">\r\n<div style=\"border-left: 0.666667px solid #d9d9d9;border-right: 0.666667px solid #d9d9d9;border-top: 0px none #212121;border-bottom: 0px none #212121;border-radius: 0px;padding: 0px 45px 0px 13px;line-height: 18.004px;min-height: 0px;color: #212121;font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace;font-size: 14px\">brown1 = [0 0 0]; <span style=\"color: #008013\">% Dark center color<\/span><\/div>\r\n<\/div>\r\n<div class=\"inlineWrapper\">\r\n<div style=\"border-left: 0.666667px solid #d9d9d9;border-right: 0.666667px solid #d9d9d9;border-top: 0px none #212121;border-bottom: 0px none #212121;border-radius: 0px;padding: 0px 45px 0px 13px;line-height: 18.004px;min-height: 0px;color: #212121;font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace;font-size: 14px\">brown2 = [0.470 0.240 0.010]; <span style=\"color: #008013\">% Brigher outer color<\/span><\/div>\r\n<\/div>\r\n<div class=\"inlineWrapper\">\r\n<div style=\"border-left: 0.666667px solid #d9d9d9;border-right: 0.666667px solid #d9d9d9;border-top: 0px none #212121;border-bottom: 0px none #212121;border-radius: 0px;padding: 0px 45px 0px 13px;line-height: 18.004px;min-height: 0px;color: #212121;font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace;font-size: 14px\">edge = [1 1 1]; <span style=\"color: #008013\">% Scale edging<\/span><\/div>\r\n<\/div>\r\n<div class=\"inlineWrapper\">\r\n<div style=\"border-left: 0.666667px solid #d9d9d9;border-right: 0.666667px solid #d9d9d9;border-top: 0px none #212121;border-bottom: 0px none #212121;border-radius: 0px;padding: 0px 45px 0px 13px;line-height: 18.004px;min-height: 0px;color: #212121;font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace;font-size: 14px\">green = [0.060 0.590 0.400]; <span style=\"color: #008013\">% Pine Needles<\/span><\/div>\r\n<\/div>\r\n<div class=\"inlineWrapper\">\r\n<div style=\"border-left: 0.666667px solid #d9d9d9;border-right: 0.666667px solid #d9d9d9;border-top: 0px none #212121;border-bottom: 0px none #212121;border-radius: 0px;padding: 0px 45px 0px 13px;line-height: 18.004px;min-height: 0px;color: #212121;font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace;font-size: 14px\"><\/div>\r\n<\/div>\r\n<div class=\"inlineWrapper\">\r\n<div style=\"border-left: 0.666667px solid #d9d9d9;border-right: 0.666667px solid #d9d9d9;border-top: 0px none #212121;border-bottom: 0px none #212121;border-radius: 0px;padding: 0px 45px 0px 13px;line-height: 18.004px;min-height: 0px;color: #212121;font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace;font-size: 14px\"><span style=\"color: #008013\">% Resolution<\/span><\/div>\r\n<\/div>\r\n<div class=\"inlineWrapper\">\r\n<div style=\"border-left: 0.666667px solid #d9d9d9;border-right: 0.666667px solid #d9d9d9;border-top: 0px none #212121;border-bottom: 0px none #212121;border-radius: 0px;padding: 0px 45px 0px 13px;line-height: 18.004px;min-height: 0px;color: #212121;font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace;font-size: 14px\">vps = 17; <span style=\"color: #008013\">% verts per scale : An odd number so 1 vert is in center<\/span><\/div>\r\n<\/div>\r\n<div class=\"inlineWrapper\">\r\n<div style=\"border-left: 0.666667px solid #d9d9d9;border-right: 0.666667px solid #d9d9d9;border-top: 0px none #212121;border-bottom: 0px none #212121;border-radius: 0px;padding: 0px 45px 0px 13px;line-height: 18.004px;min-height: 0px;color: #212121;font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace;font-size: 14px\">vpr = 20; <span style=\"color: #008013\">% verts per radius<\/span><\/div>\r\n<\/div>\r\n<div class=\"inlineWrapper\">\r\n<div style=\"border-left: 0.666667px solid #d9d9d9;border-right: 0.666667px solid #d9d9d9;border-top: 0px none #212121;border-bottom: 0px none #212121;border-radius: 0px;padding: 0px 45px 0px 13px;line-height: 18.004px;min-height: 0px;color: #212121;font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace;font-size: 14px\"><\/div>\r\n<\/div>\r\n<div class=\"inlineWrapper\">\r\n<div style=\"border-left: 0.666667px solid #d9d9d9;border-right: 0.666667px solid #d9d9d9;border-top: 0px none #212121;border-bottom: 0px none #212121;border-radius: 0px;padding: 0px 45px 0px 13px;line-height: 18.004px;min-height: 0px;color: #212121;font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace;font-size: 14px\"><span style=\"color: #008013\">% Scale locations<\/span><\/div>\r\n<\/div>\r\n<div class=\"inlineWrapper\">\r\n<div style=\"border-left: 0.666667px solid #d9d9d9;border-right: 0.666667px solid #d9d9d9;border-top: 0px none #212121;border-bottom: 0px none #212121;border-radius: 0px;padding: 0px 45px 0px 13px;line-height: 18.004px;min-height: 0px;color: #212121;font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace;font-size: 14px\">FIB = (1+sqrt(5))*(1:nscales); <span style=\"color: #008013\">% Fibonacci golden ratio sequence as factor of pi\u00a0\u00a0<\/span><\/div>\r\n<\/div>\r\n<div class=\"inlineWrapper\">\r\n<div style=\"border-left: 0.666667px solid #d9d9d9;border-right: 0.666667px solid #d9d9d9;border-top: 0px none #212121;border-bottom: 0px none #212121;border-radius: 0px;padding: 0px 45px 0px 13px;line-height: 18.004px;min-height: 0px;color: #212121;font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace;font-size: 14px\">H = linspace(0,1,nscales).^hexp*height; <span style=\"color: #008013\">% Height of the root of each scale<\/span><\/div>\r\n<\/div>\r\n<div class=\"inlineWrapper\">\r\n<div style=\"border-left: 0.666667px solid #d9d9d9;border-right: 0.666667px solid #d9d9d9;border-top: 0px none #212121;border-bottom: 0px none #212121;border-radius: 0px;padding: 0px 45px 0px 13px;line-height: 18.004px;min-height: 0px;color: #212121;font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace;font-size: 14px\">R = 1-abs(linspace(-1,1,nscales).^rexp); <span style=\"color: #008013\">% Radius of pinecone over height<\/span><\/div>\r\n<\/div>\r\n<div class=\"inlineWrapper\">\r\n<div style=\"border-left: 0.666667px solid #d9d9d9;border-right: 0.666667px solid #d9d9d9;border-top: 0px none #212121;border-bottom: 0px none #212121;border-radius: 0px;padding: 0px 45px 0px 13px;line-height: 18.004px;min-height: 0px;color: #212121;font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace;font-size: 14px\">U = 1-abs(linspace(-1,1,nscales).^stuexp); <span style=\"color: #008013\">% Thickness of scale U shape by height<\/span><\/div>\r\n<\/div>\r\n<div class=\"inlineWrapper\">\r\n<div style=\"border-left: 0.666667px solid #d9d9d9;border-right: 0.666667px solid #d9d9d9;border-top: 0px none #212121;border-bottom: 0px none #212121;border-radius: 0px;padding: 0px 45px 0px 13px;line-height: 18.004px;min-height: 0px;color: #212121;font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace;font-size: 14px\"><\/div>\r\n<\/div>\r\n<div class=\"inlineWrapper\">\r\n<div style=\"border-left: 0.666667px solid #d9d9d9;border-right: 0.666667px solid #d9d9d9;border-top: 0px none #212121;border-bottom: 0px none #212121;border-radius: 0px;padding: 0px 45px 0px 13px;line-height: 18.004px;min-height: 0px;color: #212121;font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace;font-size: 14px\"><span style=\"color: #008013\">% Geometry of the scales at the locations<\/span><\/div>\r\n<\/div>\r\n<div class=\"inlineWrapper\">\r\n<div style=\"border-left: 0.666667px solid #d9d9d9;border-right: 0.666667px solid #d9d9d9;border-top: 0px none #212121;border-bottom: 0px none #212121;border-radius: 0px;padding: 0px 45px 0px 13px;line-height: 18.004px;min-height: 0px;color: #212121;font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace;font-size: 14px\">ST = reshape((linspace(-.5,.5,vps)*swt+FIB')', 1,[]); <span style=\"color: #008013\">% Scale Theta<\/span><\/div>\r\n<\/div>\r\n<div class=\"inlineWrapper\">\r\n<div style=\"border-left: 0.666667px solid #d9d9d9;border-right: 0.666667px solid #d9d9d9;border-top: 0px none #212121;border-bottom: 0px none #212121;border-radius: 0px;padding: 0px 45px 0px 13px;line-height: 18.004px;min-height: 0px;color: #212121;font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace;font-size: 14px\">SR = reshape(((1-abs(linspace(-1,1,vps).^scexp)).*R')',1,[]); <span style=\"color: #008013\">% Scale Radii<\/span><\/div>\r\n<\/div>\r\n<div class=\"inlineWrapper\">\r\n<div style=\"border-left: 0.666667px solid #d9d9d9;border-right: 0.666667px solid #d9d9d9;border-top: 0px none #212121;border-bottom: 0px none #212121;border-radius: 0px;padding: 0px 45px 0px 13px;line-height: 18.004px;min-height: 0px;color: #212121;font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace;font-size: 14px\">SH = reshape((ones(1,vps).*H'+abs(linspace(-1,1,vps).^suexp.*U')*sth)',1,[]); <span style=\"color: #008013\">% Scale Height<\/span><\/div>\r\n<\/div>\r\n<div class=\"inlineWrapper\">\r\n<div style=\"border-left: 0.666667px solid #d9d9d9;border-right: 0.666667px solid #d9d9d9;border-top: 0px none #212121;border-bottom: 0px none #212121;border-radius: 0px;padding: 0px 45px 0px 13px;line-height: 18.004px;min-height: 0px;color: #212121;font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace;font-size: 14px\">MR = linspace(0,1,vpr)'.*SR;<\/div>\r\n<\/div>\r\n<div class=\"inlineWrapper\">\r\n<div style=\"border-left: 0.666667px solid #d9d9d9;border-right: 0.666667px solid #d9d9d9;border-top: 0px none #212121;border-bottom: 0px none #212121;border-radius: 0px;padding: 0px 45px 0px 13px;line-height: 18.004px;min-height: 0px;color: #212121;font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace;font-size: 14px\"><\/div>\r\n<\/div>\r\n<div class=\"inlineWrapper\">\r\n<div style=\"border-left: 0.666667px solid #d9d9d9;border-right: 0.666667px solid #d9d9d9;border-top: 0px none #212121;border-bottom: 0px none #212121;border-radius: 0px;padding: 0px 45px 0px 13px;line-height: 18.004px;min-height: 0px;color: #212121;font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace;font-size: 14px\"><span style=\"color: #008013\">% Compute final geometry of the pinecone.<\/span><\/div>\r\n<\/div>\r\n<div class=\"inlineWrapper\">\r\n<div style=\"border-left: 0.666667px solid #d9d9d9;border-right: 0.666667px solid #d9d9d9;border-top: 0px none #212121;border-bottom: 0px none #212121;border-radius: 0px;padding: 0px 45px 0px 13px;line-height: 18.004px;min-height: 0px;color: #212121;font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace;font-size: 14px\">X = cospi(ST).*MR;<\/div>\r\n<\/div>\r\n<div class=\"inlineWrapper\">\r\n<div style=\"border-left: 0.666667px solid #d9d9d9;border-right: 0.666667px solid #d9d9d9;border-top: 0px none #212121;border-bottom: 0px none #212121;border-radius: 0px;padding: 0px 45px 0px 13px;line-height: 18.004px;min-height: 0px;color: #212121;font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace;font-size: 14px\">Y = sinpi(ST).*MR;<\/div>\r\n<\/div>\r\n<div class=\"inlineWrapper\">\r\n<div style=\"border-left: 0.666667px solid #d9d9d9;border-right: 0.666667px solid #d9d9d9;border-top: 0px none #212121;border-bottom: 0px none #212121;border-radius: 0px;padding: 0px 45px 0px 13px;line-height: 18.004px;min-height: 0px;color: #212121;font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace;font-size: 14px\">Z = SH.*ones(vpr,1)+MR.*linspace(0,1,vps*nscales).^stexp*stilt;<\/div>\r\n<\/div>\r\n<div class=\"inlineWrapper\">\r\n<div style=\"border-left: 0.666667px solid #d9d9d9;border-right: 0.666667px solid #d9d9d9;border-top: 0px none #212121;border-bottom: 0px none #212121;border-radius: 0px;padding: 0px 45px 0px 13px;line-height: 18.004px;min-height: 0px;color: #212121;font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace;font-size: 14px\">C = linspace(0,1,vpr).^cexp'.*ones(1,vps*nscales);<\/div>\r\n<\/div>\r\n<div class=\"inlineWrapper\">\r\n<div style=\"border-left: 0.666667px solid #d9d9d9;border-right: 0.666667px solid #d9d9d9;border-top: 0px none #212121;border-bottom: 0px none #212121;border-radius: 0px;padding: 0px 45px 0px 13px;line-height: 18.004px;min-height: 0px;color: #212121;font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace;font-size: 14px\"><\/div>\r\n<\/div>\r\n<div class=\"inlineWrapper\">\r\n<div style=\"border-left: 0.666667px solid #d9d9d9;border-right: 0.666667px solid #d9d9d9;border-top: 0px none #212121;border-bottom: 0px none #212121;border-radius: 0px;padding: 0px 45px 0px 13px;line-height: 18.004px;min-height: 0px;color: #212121;font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace;font-size: 14px\"><span style=\"color: #008013\">% Plot pinecone<\/span><\/div>\r\n<\/div>\r\n<div class=\"inlineWrapper\">\r\n<div style=\"border-left: 0.666667px solid #d9d9d9;border-right: 0.666667px solid #d9d9d9;border-top: 0px none #212121;border-bottom: 0px none #212121;border-radius: 0px;padding: 0px 45px 0px 13px;line-height: 18.004px;min-height: 0px;color: #212121;font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace;font-size: 14px\">set(gcf,<span style=\"color: #a709f5\">'Color'<\/span>,<span style=\"color: #a709f5\">'#fffafa'<\/span>); <span style=\"color: #008013\">% Snow<\/span><\/div>\r\n<\/div>\r\n<div class=\"inlineWrapper\">\r\n<div style=\"border-left: 0.666667px solid #d9d9d9;border-right: 0.666667px solid #d9d9d9;border-top: 0px none #212121;border-bottom: 0px none #212121;border-radius: 0px;padding: 0px 45px 0px 13px;line-height: 18.004px;min-height: 0px;color: #212121;font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace;font-size: 14px\">plot3(X(end,:),Y(end,:),-Z(end,:),<span style=\"color: #a709f5\">'-'<\/span>,<span style=\"color: #a709f5\">'Color'<\/span>,edge);<\/div>\r\n<\/div>\r\n<div class=\"inlineWrapper\">\r\n<div style=\"border-left: 0.666667px solid #d9d9d9;border-right: 0.666667px solid #d9d9d9;border-top: 0px none #212121;border-bottom: 0px none #212121;border-radius: 0px;padding: 0px 45px 0px 13px;line-height: 18.004px;min-height: 0px;color: #212121;font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace;font-size: 14px\">surface(X,Y,-Z,C,<span style=\"color: #a709f5\">'EdgeColor'<\/span>,<span style=\"color: #a709f5\">'none'<\/span>);<\/div>\r\n<\/div>\r\n<div class=\"inlineWrapper\">\r\n<div style=\"border-left: 0.666667px solid #d9d9d9;border-right: 0.666667px solid #d9d9d9;border-top: 0px none #212121;border-bottom: 0px none #212121;border-radius: 0px;padding: 0px 45px 0px 13px;line-height: 18.004px;min-height: 0px;color: #212121;font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace;font-size: 14px\">shading <span style=\"color: #a709f5\">interp<\/span><\/div>\r\n<\/div>\r\n<div class=\"inlineWrapper\">\r\n<div style=\"border-left: 0.666667px solid #d9d9d9;border-right: 0.666667px solid #d9d9d9;border-top: 0px none #212121;border-bottom: 0px none #212121;border-radius: 0px;padding: 0px 45px 0px 13px;line-height: 18.004px;min-height: 0px;color: #212121;font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace;font-size: 14px\"><\/div>\r\n<\/div>\r\n<div class=\"inlineWrapper\">\r\n<div style=\"border-left: 0.666667px solid #d9d9d9;border-right: 0.666667px solid #d9d9d9;border-top: 0px none #212121;border-bottom: 0px none #212121;border-radius: 0px;padding: 0px 45px 0px 13px;line-height: 18.004px;min-height: 0px;color: #212121;font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace;font-size: 14px\"><span style=\"color: #008013\">% Dark center to Brown colormap<\/span><\/div>\r\n<\/div>\r\n<div class=\"inlineWrapper\">\r\n<div style=\"border-left: 0.666667px solid #d9d9d9;border-right: 0.666667px solid #d9d9d9;border-top: 0px none #212121;border-bottom: 0px none #212121;border-radius: 0px;padding: 0px 45px 0px 13px;line-height: 18.004px;min-height: 0px;color: #212121;font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace;font-size: 14px\">colormap(interp1([1 256],[brown1; brown2],1:256));<\/div>\r\n<\/div>\r\n<div class=\"inlineWrapper\">\r\n<div style=\"border-left: 0.666667px solid #d9d9d9;border-right: 0.666667px solid #d9d9d9;border-top: 0px none #212121;border-bottom: 0px none #212121;border-radius: 0px;padding: 0px 45px 0px 13px;line-height: 18.004px;min-height: 0px;color: #212121;font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace;font-size: 14px\"><\/div>\r\n<\/div>\r\n<div class=\"inlineWrapper\">\r\n<div style=\"border-left: 0.666667px solid #d9d9d9;border-right: 0.666667px solid #d9d9d9;border-top: 0px none #212121;border-bottom: 0px none #212121;border-radius: 0px;padding: 0px 45px 0px 13px;line-height: 18.004px;min-height: 0px;color: #212121;font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace;font-size: 14px\"><span style=\"color: #008013\">% Branch<\/span><\/div>\r\n<\/div>\r\n<div class=\"inlineWrapper\">\r\n<div style=\"border-left: 0.666667px solid #d9d9d9;border-right: 0.666667px solid #d9d9d9;border-top: 0px none #212121;border-bottom: 0px none #212121;border-radius: 0px;padding: 0px 45px 0px 13px;line-height: 18.004px;min-height: 0px;color: #212121;font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace;font-size: 14px\">bx = [ 0 .5 1 1.5 2 ];<\/div>\r\n<\/div>\r\n<div class=\"inlineWrapper\">\r\n<div style=\"border-left: 0.666667px solid #d9d9d9;border-right: 0.666667px solid #d9d9d9;border-top: 0px none #212121;border-bottom: 0px none #212121;border-radius: 0px;padding: 0px 45px 0px 13px;line-height: 18.004px;min-height: 0px;color: #212121;font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace;font-size: 14px\">by = [ 0 0 0 0 0 ];<\/div>\r\n<\/div>\r\n<div class=\"inlineWrapper\">\r\n<div style=\"border-left: 0.666667px solid #d9d9d9;border-right: 0.666667px solid #d9d9d9;border-top: 0px none #212121;border-bottom: 0px none #212121;border-radius: 0px;padding: 0px 45px 0px 13px;line-height: 18.004px;min-height: 0px;color: #212121;font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace;font-size: 14px\">bz = [ 0 .05 .2 .25 .2 ];<\/div>\r\n<\/div>\r\n<div class=\"inlineWrapper\">\r\n<div style=\"border-left: 0.666667px solid #d9d9d9;border-right: 0.666667px solid #d9d9d9;border-top: 0px none #212121;border-bottom: 0px none #212121;border-radius: 0px;padding: 0px 45px 0px 13px;line-height: 18.004px;min-height: 0px;color: #212121;font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace;font-size: 14px\">line(<span style=\"color: #a709f5\">'XData'<\/span>,bx,<span style=\"color: #a709f5\">'YData'<\/span>,by,<span style=\"color: #a709f5\">'ZData'<\/span>,bz,<span style=\"color: #a709f5\">'Color'<\/span>,brown1, <span style=\"color: #a709f5\">'LineWidth'<\/span>,5);<\/div>\r\n<\/div>\r\n<div class=\"inlineWrapper\">\r\n<div style=\"border-left: 0.666667px solid #d9d9d9;border-right: 0.666667px solid #d9d9d9;border-top: 0px none #212121;border-bottom: 0px none #212121;border-radius: 0px;padding: 0px 45px 0px 13px;line-height: 18.004px;min-height: 0px;color: #212121;font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace;font-size: 14px\"><\/div>\r\n<\/div>\r\n<div class=\"inlineWrapper\">\r\n<div style=\"border-left: 0.666667px solid #d9d9d9;border-right: 0.666667px solid #d9d9d9;border-top: 0px none #212121;border-bottom: 0px none #212121;border-radius: 0px;padding: 0px 45px 0px 13px;line-height: 18.004px;min-height: 0px;color: #212121;font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace;font-size: 14px\"><span style=\"color: #008013\">% Pine Needles<\/span><\/div>\r\n<\/div>\r\n<div class=\"inlineWrapper\">\r\n<div style=\"border-left: 0.666667px solid #d9d9d9;border-right: 0.666667px solid #d9d9d9;border-top: 0px none #212121;border-bottom: 0px none #212121;border-radius: 0px;padding: 0px 45px 0px 13px;line-height: 18.004px;min-height: 0px;color: #212121;font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace;font-size: 14px\">NT = linspace(0,5,nn)';<\/div>\r\n<\/div>\r\n<div class=\"inlineWrapper\">\r\n<div style=\"border-left: 0.666667px solid #d9d9d9;border-right: 0.666667px solid #d9d9d9;border-top: 0px none #212121;border-bottom: 0px none #212121;border-radius: 0px;padding: 0px 45px 0px 13px;line-height: 18.004px;min-height: 0px;color: #212121;font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace;font-size: 14px\">NR = linspace(.1,.8,nn)';<\/div>\r\n<\/div>\r\n<div class=\"inlineWrapper\">\r\n<div style=\"border-left: 0.666667px solid #d9d9d9;border-right: 0.666667px solid #d9d9d9;border-top: 0px none #212121;border-bottom: 0px none #212121;border-radius: 0px;padding: 0px 45px 0px 13px;line-height: 18.004px;min-height: 0px;color: #212121;font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace;font-size: 14px\">NV = [ 0 0 0<\/div>\r\n<\/div>\r\n<div class=\"inlineWrapper\">\r\n<div style=\"border-left: 0.666667px solid #d9d9d9;border-right: 0.666667px solid #d9d9d9;border-top: 0px none #212121;border-bottom: 0px none #212121;border-radius: 0px;padding: 0px 45px 0px 13px;line-height: 18.004px;min-height: 0px;color: #212121;font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace;font-size: 14px\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0-ones(nn,1)*2, cospi(NT).*NR, sinpi(NT).*NR+.9 ];<\/div>\r\n<\/div>\r\n<div class=\"inlineWrapper\">\r\n<div style=\"border-left: 0.666667px solid #d9d9d9;border-right: 0.666667px solid #d9d9d9;border-top: 0px none #212121;border-bottom: 0px none #212121;border-radius: 0px;padding: 0px 45px 0px 13px;line-height: 18.004px;min-height: 0px;color: #212121;font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace;font-size: 14px\">NF = [ ones(nn,1) (1:nn)'+1 ];<\/div>\r\n<\/div>\r\n<div class=\"inlineWrapper\">\r\n<div style=\"border-left: 0.666667px solid #d9d9d9;border-right: 0.666667px solid #d9d9d9;border-top: 0px none #212121;border-bottom: 0px none #212121;border-radius: 0px;padding: 0px 45px 0px 13px;line-height: 18.004px;min-height: 0px;color: #212121;font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace;font-size: 14px\">patch(<span style=\"color: #a709f5\">'Vertices'<\/span>,NV,<span style=\"color: #a709f5\">'Faces'<\/span>,NF,<span style=\"color: #a709f5\">'EdgeColor'<\/span>,green,<span style=\"color: #a709f5\">'FaceColor'<\/span>,<span style=\"color: #a709f5\">'none'<\/span>,<span style=\"color: #0e00ff\">...<\/span><\/div>\r\n<\/div>\r\n<div class=\"inlineWrapper\">\r\n<div style=\"border-left: 0.666667px solid #d9d9d9;border-right: 0.666667px solid #d9d9d9;border-top: 0px none #212121;border-bottom: 0px none #212121;border-radius: 0px;padding: 0px 45px 0px 13px;line-height: 18.004px;min-height: 0px;color: #212121;font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace;font-size: 14px\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #a709f5\">'LineWidth'<\/span>,1.5);<\/div>\r\n<\/div>\r\n<div class=\"inlineWrapper\">\r\n<div style=\"border-left: 0.666667px solid #d9d9d9;border-right: 0.666667px solid #d9d9d9;border-top: 0px none #212121;border-bottom: 0px none #212121;border-radius: 0px;padding: 0px 45px 0px 13px;line-height: 18.004px;min-height: 0px;color: #212121;font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace;font-size: 14px\"><\/div>\r\n<\/div>\r\n<div class=\"inlineWrapper\">\r\n<div style=\"border-left: 0.666667px solid #d9d9d9;border-right: 0.666667px solid #d9d9d9;border-top: 0px none #212121;border-bottom: 0px none #212121;border-radius: 0px;padding: 0px 45px 0px 13px;line-height: 18.004px;min-height: 0px;color: #212121;font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace;font-size: 14px\"><span style=\"color: #008013\">% Setup Axes<\/span><\/div>\r\n<\/div>\r\n<div class=\"inlineWrapper\">\r\n<div style=\"border-left: 0.666667px solid #d9d9d9;border-right: 0.666667px solid #d9d9d9;border-top: 0px none #212121;border-bottom: 0px none #212121;border-radius: 0px;padding: 0px 45px 0px 13px;line-height: 18.004px;min-height: 0px;color: #212121;font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace;font-size: 14px\">set(gca,<span style=\"color: #a709f5\">'Position'<\/span>,[0 0 1 1],<span style=\"color: #a709f5\">'Clipping'<\/span>,<span style=\"color: #a709f5\">'off'<\/span>);<\/div>\r\n<\/div>\r\n<div class=\"inlineWrapper\">\r\n<div style=\"border-left: 0.666667px solid #d9d9d9;border-right: 0.666667px solid #d9d9d9;border-top: 0px none #212121;border-bottom: 0px none #212121;border-radius: 0px;padding: 0px 45px 0px 13px;line-height: 18.004px;min-height: 0px;color: #212121;font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace;font-size: 14px\">daspect([1 1 1]);<\/div>\r\n<\/div>\r\n<div class=\"inlineWrapper\">\r\n<div style=\"border-left: 0.666667px solid #d9d9d9;border-right: 0.666667px solid #d9d9d9;border-top: 0px none #212121;border-bottom: 0px none #212121;border-radius: 0px;padding: 0px 45px 0px 13px;line-height: 18.004px;min-height: 0px;color: #212121;font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace;font-size: 14px\">axis([-1.3 1.3 -1.3 1.3 -height+.2 .5],<span style=\"color: #a709f5\">'off'<\/span>)<\/div>\r\n<\/div>\r\n<div class=\"inlineWrapper\">\r\n<div style=\"border-left: 0.666667px solid #d9d9d9;border-right: 0.666667px solid #d9d9d9;border-top: 0px none #212121;border-bottom: 0px none #212121;border-radius: 0px;padding: 0px 45px 0px 13px;line-height: 18.004px;min-height: 0px;color: #212121;font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace;font-size: 14px\">material([.6 1 .3])<\/div>\r\n<\/div>\r\n<div class=\"inlineWrapper\">\r\n<div style=\"border-left: 0.666667px solid #d9d9d9;border-right: 0.666667px solid #d9d9d9;border-top: 0px none #212121;border-bottom: 0px none #212121;border-radius: 0px;padding: 0px 45px 0px 13px;line-height: 18.004px;min-height: 0px;color: #212121;font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace;font-size: 14px\">lighting <span style=\"color: #a709f5\">gouraud<\/span><\/div>\r\n<\/div>\r\n<div class=\"inlineWrapper\">\r\n<div style=\"border-left: 0.666667px solid #d9d9d9;border-right: 0.666667px solid #d9d9d9;border-top: 0px none #212121;border-bottom: 0.666667px solid #d9d9d9;border-radius: 0px 0px 4px 4px;padding: 0px 45px 4px 13px;line-height: 18.004px;min-height: 0px;color: #212121;font-family: Menlo, Monaco, Consolas, 'Courier New', monospace, Menlo, Monaco, Consolas, 'Courier New', monospace;font-size: 14px\">light(<span style=\"color: #a709f5\">'Position'<\/span>,[13.2 7.2 16.5]);<\/div>\r\n<\/div>\r\n<\/div>\r\n<img decoding=\"async\" class=\"figureImage figureContainingNode\" style=\"width: 560px\" src=\"http:\/\/blogs.mathworks.com\/graphics-and-apps\/files\/2024\/12\/pineconeplay.mlx-12-13-24_4.png\" \/>\r\n\r\n<script type=\"text\/javascript\">\r\n{ let css = '.eoOutputWrapper { width: calc(90vw - 10px) !important; }';\r\nlet head = document.head || document.getElementsByTagName('head')[0];\r\nlet style = document.createElement('style');\r\nhead.appendChild(style);\r\nstyle.type = 'text\/css';\r\nif (style.styleSheet) {\r\n    style.styleSheet.cssText = css;\r\n} else {\r\n    style.appendChild(document.createTextNode(css));\r\n}\r\n\r\n\r\n}<\/script><a href=\"https:\/\/blogs.mathworks.com\/graphics-and-apps\/files\/2024\/12\/pineconeplay.mlx\"><button class=\"btn btn-sm btn_color_blue pull-right add_margin_10\">Download Live Script<\/button><\/a>\r\n\r\n<\/div>\r\n<\/div>","protected":false},"excerpt":{"rendered":"<div class=\"overview-image\"><img src=\"https:\/\/blogs.mathworks.com\/graphics-and-apps\/files\/2024\/12\/pineconeplay.mlx-12-13-24_4.png\" class=\"img-responsive attachment-post-thumbnail size-post-thumbnail wp-post-image\" alt=\"\" decoding=\"async\" loading=\"lazy\" \/><\/div><p>\r\nToday we explore phyllotactic spirals, a naturally emerging pattern found in densely packed plant structures such as pineapples, sunflowers, and pinecones. This generative spiral is based on tau, a... <a class=\"read-more\" href=\"https:\/\/blogs.mathworks.com\/graphics-and-apps\/2024\/12\/16\/pinecode-creating-pinecones-with-fibonacci-spirals\/\">read more >><\/a><\/p>","protected":false},"author":198,"featured_media":2055,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[11,2],"tags":[],"_links":{"self":[{"href":"https:\/\/blogs.mathworks.com\/graphics-and-apps\/wp-json\/wp\/v2\/posts\/2061"}],"collection":[{"href":"https:\/\/blogs.mathworks.com\/graphics-and-apps\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blogs.mathworks.com\/graphics-and-apps\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blogs.mathworks.com\/graphics-and-apps\/wp-json\/wp\/v2\/users\/198"}],"replies":[{"embeddable":true,"href":"https:\/\/blogs.mathworks.com\/graphics-and-apps\/wp-json\/wp\/v2\/comments?post=2061"}],"version-history":[{"count":28,"href":"https:\/\/blogs.mathworks.com\/graphics-and-apps\/wp-json\/wp\/v2\/posts\/2061\/revisions"}],"predecessor-version":[{"id":2166,"href":"https:\/\/blogs.mathworks.com\/graphics-and-apps\/wp-json\/wp\/v2\/posts\/2061\/revisions\/2166"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blogs.mathworks.com\/graphics-and-apps\/wp-json\/wp\/v2\/media\/2055"}],"wp:attachment":[{"href":"https:\/\/blogs.mathworks.com\/graphics-and-apps\/wp-json\/wp\/v2\/media?parent=2061"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.mathworks.com\/graphics-and-apps\/wp-json\/wp\/v2\/categories?post=2061"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.mathworks.com\/graphics-and-apps\/wp-json\/wp\/v2\/tags?post=2061"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}