POV-Ray : Newsgroups : povray.general : Hexagon pattern with 4 or 7 colors? : Re: Hexagon pattern with 4 or 7 colors? Server Time
12 May 2024 19:00:28 EDT (-0400)
  Re: Hexagon pattern with 4 or 7 colors?  
From: Bald Eagle
Date: 2 May 2018 09:30:01
Message: <web.5ae9bd3797bd16015cafe28e0@news.povray.org>
"Kenneth" <kdw### [at] gmailcom> wrote:

> Success! Random-colored hexagons. I didn't have to use the 'brick' pattern, just
> cells.


Pretty damned impressive, my friend.   :)
"Whenever possible, let POV-Ray do the heavy lifting."
Very nice work applying the [warped] cells pattern.


> So the distance between opposite POINTS or vertices is 2.0 units, and the
> distance between opposite EDGES is 2*sin(60), or 2*.8660254 units. The cells
> patterns are scaled and translated so that they fully overlap each full hexagon
> (but the overlaps aren't seen.)

Excellent.  I wouldn't have guessed that the squares would work well with the
hexagons, but --- lookitthat!

> The links that Bald Eagle provided were quite helpful with the hexagon math
> details. (Thanks!)

Any time.   You've managed to get a good grasp on intertwining pigment patterns,
and I'd like to make a few suggestions for improvement so that it's usable for
experienced and new users alike.


> Instead of fully random colors, the pigment_maps could have 4 or 7 or however
> many 'segregated' colors, which was the original idea.



1. Declare this as a standalone texture for use in an include file.
That way perhaps we can start a NewPatterns_v1.inc or something.

#declare FullHexagon = texture {....}
and obviously remove the finish {} block so that it can be applied by the
end-user.

2. Just a little nitpicky kinda thing: .8660254 is a "magic number" - it has no
meaning to someone looking at the code itself [and it has no leading zero
 :( ].  #declare Edge2Edge = 2 * sin (60); and then use that in your code.
Better still, since that still leaves out the implies "unit length of a side",
make it
#declare SideLength = 1;
#declare Edge2Edge = 2 * SideLength * sin (60);

and then scale <3, 1, (3 * Edge2Edge)>

Maybe include a way to specify dimensions based on different metrics:  edge to
edge, point to point, etc.

3. I, and likely anyone else who'd like to use this (OP), would probably enjoy a
simple mechanism by which to specify between 1 and N colors for the hexagons.  I
haven't dabbled with the code yet, but having a few easily understood #declares
that parameterize the pattern would make it a lot easier.
I'm trying to get my car repaired - AGAIN - and so I'm gonna be AFK for a while.
If there's a way to tie in the numeric pattern that I applied to crackle{} and
wood{}, that would help the use choose/modify the color pattern without a lot of
guessing.

.... and I see an obvious tie-in with the recently posted solution to the digital
camo!  :D

4.  Having just the outlines of the hexagons - a hexagonal grid (perhaps with
boxed{} or another pattern with a gradient or something? would be an obvious
extension of this.  Obviously some pattern would give hexagons with "holes"
rather than clean lines, but it's grid-like nonetheless.


Once again - super work, and super FAST!  :O


Post a reply to this message

Copyright 2003-2023 Persistence of Vision Raytracer Pty. Ltd.