POV-Ray : Newsgroups : povray.binaries.images : blob words : Re: blob words Server Time21 Jun 2024 09:59:27 EDT (-0400)
 Re: blob words
 From: Alain Martel Date: 1 Feb 2022 10:47:29 Message: <61f95611\$1@news.povray.org>
```
{
"@context": "https://schema.org",
"@type": "DiscussionForumPosting",
"@id": "#61f95611%241%40news.povray.org",
"headline": "Re: blob words",
"dateCreated": "2022-02-01T15:47:29+00:00",
"datePublished": "2022-02-01T15:47:29+00:00",
"author": {
"@type": "Person",
"name": "Alain Martel"
}
}
Le 2022-02-01 à 01:34, Dave Blandston a écrit :

>
> This is mathematically correct and in my opinion the best/simplest solution if
> it works properly *but* might not produce the desired result artistically for
> each object. For example, picture a ballerina spinning with one arm
> outstretched. Her average center of rotation would probably be somewhere near
> her shoulder, so a more complex formula (or artistic judgment) is sometimes
> necessary. For these abstract shapes perhaps that will suffice, or perhaps it
> will look awkward. I would certainly try this method first and see how it looks.
> It will probably look great. I'm very curious to see because this is an
> interesting artistic question. If it doesn't look right then here's another
> possibility that I would try: Place each object in turn inside a vertical
> cylinder centered on the y axis. Use highly contrasting colors so you can easily
> see where the object extends outside the cylinder. You can also make the
> cylinder partially transparent. Adjust the radius of the cylinder and the x and
> z positions of the blob object until it "feels right."
>
> I'm looking forward to seeing where this leads!
>
> Kind regards,
> Dave Blandston
>

In the case that you mention, the solution would be to add some offset
when translating :

#declare Offset = Artistic_Adjustment_Value;

#declare Centre = (max_extent(Object) + min_extent(Object) ) / 2;
//This will find the opposing corners of the bounding box, then find
//their average. That average value is the centre of your object.

#declare Object = object{Object translate -Centre+Offset rotate
Some_Rotation translate Centre-Offset}
// This translate your object by minus the found value adjusted by
// the artistic offset, apply your rotation, then translate your
// object back to it's original location.
```