At My Fingertips

Documentation

Simple Traffic Cone

Let's write a function to produce traffic cones of arbitrary sizes!

traffic cone

Decompose

You might have identified five trapezoids and an orange rectangle at the bottom. The top trapezoid is orange, the one below is whitish (almost white), the next orange, and so on.

The trappezoids are isosceles (both legs have the same length).

Isosceles Trapezoid

PyTamaro does not have a function to create isosceles trapezoids.

You could write such a function right here (by decomposing an isosceles trapezoid into smaller components), but we recommend you complete the PyTamaro iconIsosceles Trapezoid activity, to create that function and to store it in your toolbox. Once you are done with that, import the isosceles_trapezoid function from your toolbox.

Loading...

Fixed-Size Traffic Cone

Now let's implement a function that can produce a fixed-size traffic cone, with a total height of 220.

Here is a sketch showing the key measurements:

You need the length of the top and bottom bases and the height of each isosceles triangle. You also need the width and height of the rectangle.

Loading...

Parameterization: Arbitrary-Size Traffic Cone

We would like to have a function that can produce a traffic cone of any size. Assume we would like to provide the overall height of the cone as a parameter to the function:

def traffic_cone(height: float) -> Graphic:

Every other measure is derived from that height. This is done in such a way that for traffic_cone(220) we get the same graphic as for fixed_size_traffic_cone, and all the measures scale proportionally for other heights.

Think how to determine the arguments for the isosceles_trapezoid and rectangle function calls based on the overall height.

Implementation

Loading...

Save in Toolbox

If you like, you can store your traffic_cone function in your toolbox.

Note that the traffic_cone function is probably less generally useful (it is quite specialized) than the isosceles_trapezoid function (which is more abstract). Lots of graphics can be decomposed into trapezoids. But there are probably only a few graphics that contain traffic cones with two white and three orange stripes in the exact colors you picked.

The more generally useful a function is, the more valuable it is to have it in your library.


This activity has been created by LuCE Research Lab and is licensed under CC BY-SA 4.0.

Simple Traffic Cone

Logo of PyTamaro

PyTamaro is a project created by the Lugano Computing Education Research Lab at the Software Institute of USI

Privacy Policy • Platform Version c08406b (Wed, 20 Nov 2024 12:30:00 GMT)