POV-Ray : Newsgroups : povray.binaries.images : Isosurface from magnitude of complex function with domain coloring : Re: Isosurface from magnitude of complex function with domain coloring Server Time22 May 2024 01:17:38 EDT (-0400)
 Re: Isosurface from magnitude of complex function with domain coloring
 From: Alain Martel Date: 24 Dec 2021 13:16:26 Message: <61c60e7a\$1@news.povray.org>
```
{
"@context": "https://schema.org",
"@type": "DiscussionForumPosting",
"@id": "#61c60e7a%241%40news.povray.org",
"headline": "Re: Isosurface from magnitude of complex function with domain coloring",
"dateCreated": "2021-12-24T18:16:26+00:00",
"datePublished": "2021-12-24T18:16:26+00:00",
"author": {
"@type": "Person",
"name": "Alain Martel"
}
}
Le 2021-12-22 à 19:34, BayashiPascal a écrit :
> "Tor Olav Kristensen" <tor### [at] TOBEREMOVEDgmailcom> wrote:
>> Hi
>>
>> Since this post:
>>
>> From: kurtz le pirate
>> Subject: How to ...
>> Date: 2021-11-22 11:23:08
>>
>> - I've been working on some some macros that create functions for calculating
>> with complex numbers.
>>
>> And yesterday I made some functions that can be used for HSV-coloring of
>> pigments.
>>
>> The isosurface in the attached image shows the magnitude (or modulus) of this
>> function:
>>
>>    Fn(Z) = 1/(Z^5 - 2)^2
>>
>> - as the height above a complex plane:. I found that function here:
>>
https://matlabarticlesworld.blogspot.com/2020/01/what-is-coolest-thing-you-can-do-with.html
>>
>> The colors are chosen so that the hue follows the phase (or argument) of the
>> function, while the lightness goes from 0.0 to 0.5 in intervals along the height
>> axis. The saturation is 100% everywhere.
>>
>> --
>> Tor Olav
>> http://subcube.com
>> https://github.com/t-o-k
>
>
> Very nice.
>
> The "multi-layered" aspect of the result is intriguing me. Does it come from a
> property of the function you've choosen, or from the way you choose to visualise
> it ?
>
> Pascal
>
>
>
Do you mean the repeating gradient ?
It comes from the way the «V» of the HSV value is computed, and values
larger than 1 get their integer part zeroed.

Then, it's mapped to a 0..0.5 range.

It could look something like this :
colour_map{
[0 hsv2rgb(<Hvalue, 1, 0>)]
[1 hsv2rgb(<Hvalue, 1, 0.5>)]
}
```