# Mapping a Triangular arrow + concentric circles

Hello,

I just got done soldering about 2900 pixels

Im using on my structure the output expander to give

2x circles (with led inside and outside)
and
10x Arrows (with led on the outside

I know I can mape the concentric circles

BUT how the hell can i map the ARROWS?

@wizard i have @Sunandmooncouture helping, but i was just wondering if you know a workaround for this?

Heres an example of whats I have now, and the rendering!

Hey! I think thereâ€™s a couple options; can you describe what kind of patterns are most important on the arrows? Like, traversing the outlines? Lighting each individually? Tail to tip? How would you like to coordinate the rings with the arrows, if at all?

Some of the 3D line generation map code weâ€™ve seen here might be a good place to start:

Heya @jeff

All of the above options!

I would like first to have an animation that runs from the top coming all the way down
i.e: an wave line that starts from the â€ścricleâ€ť going from the â€śtop of arrowâ€ť all the way to the â€śtipâ€ť.

but also individualy and traversing outline sounds cool mapping too!

So the biggest problem I see is that those arrows are freely spinning.

Imagine they were pasted onto a tin can that descended from the ringâ€¦ youâ€™ll essentially have a cylinder with a pattern of arrows on it, right?

Treat it that way. Itâ€™ll look right.

So your map is:
Rings at top of cylinder
Top of arrows further down cylinder, spaced around the cylinder
Sides of arrows
Bottoms of arrows going to the point

You could (and likely easier) map each arrow fully around the cylinder, rotating around the cylinder based on the â€ścenter pointâ€ť of each arrow. That will cause a slight curve in the map, but I suspect you wonâ€™t notice that in real life

Make sense?

So your mapping code in JavaScript should be:
Define the cylinder radius
Map the rings at the top
Define an arrow mapper function, given an xyz location
Map each arrow around the cylinder, at a given xyz location.

If you want to do your arrow outline, then Z will define the top to bottom effect you want.

I would be tempted to map the arrows as if they were folded in half and fixed in position (each side of the arrow would be mirrored) ,with the folded center towards the middle and the arrow barb toward the outside.

With this, imagine a pattern that goes from inside outward, it would hit the ring and the center of the arrow at the same time, and then travel outward from center of the arrow (long the top and tip). Youâ€™d still get some action along the circumference of the large ring, but it would be equal/mirrored on the arrows and wouldnâ€™t matter how they were rotated.

Hereâ€™s the strategy for how I would implement it:

Use a circle function to draw the ring at a fixed Z height (adapted from the ring example)
Make a function that draws the arrows at a given angle and offset from center (position around the circumference of the large ring), using a few line functions to make each arrow.
Use a `for` loop to call the arrow function to generate each arrow distributed around the circle.

1 Like

Yeah, similar to my view except you see it this way:

``````----- ring
|     Space
-|  top half of arrow (mirrored)
7  half of arrow (mirrored)
``````

I was picturing flat against the cylinder, imagine them painted on.

Either will work. But I prefer mine because the left and right â€śsidesâ€ť of each would have different angles, while in yours, the entire arrow would be in one â€śangleâ€ť entirely. That would be good for lighting up an entire arrow (where angle is X), while in mine, an arrow is between angles A and B.