Re: [Lazarus] SVG Object

2022-01-18 Thread Mehmet Erol Sanliturk via lazarus
On Tue, Jan 18, 2022 at 7:22 AM Steve Gatenby via lazarus <
lazarus@lists.lazarus-ide.org> wrote:

> Thank you Mehmet -
>
> Tried to follow the math within the svg (inkscape) on my first attempt(s)
>
> got completely lost (which leads to questioning ones intelligence) on the
> transforms, scales and differing units :)
>
> So now fully fudging it by dividing the Svg source Height and Width by a
> grid format and call each one a quadrant location (x,y).
>
> Then do the same with the OnClick position of the viewer (so relative
> quadrants / sizes), and find closest matching (for me) object. All depends
> on granularity of grid for accuracy.
>
> Works, but is very dependent on complexity of the svg (not a problem for
> my use case so far)
>
>
>
My primary profession was "Elementary School Teacher" . In our profession ,
determiner factor is not intelligence ( because everyone virtually has
sufficient amount of it )
but  "work with respect to scientific principles ,  continuous efforts ,
knowledge of the subject" .  Please do not blame yourself with respect to
intelligence .

Later on I went to the Middle East Technical University ( Ankara , Turkey )
to be a
( Mathematician , Computer Expert , a Good Manager of Money ( I have never
been able
to earn sufficient money to manage other than my monthly salaries )) , and
then an
instructor in another University ( Hacettepe ) . Always my emphasized point
to my
students and nearly every other one around me was the principle :
"Not intelligence , but sufficient study and work" .


My opinion is that you also need sufficient study and work , not
intelligence because
it is easily understandable that you have plenty of it .

You may see the following page and its associated subpages leading you to
"Computer Graphics" books if you think you need to review or learn subjects
about
it .


https://en.wikipedia.org/wiki/Category:Computer_graphics
Category:Computer graphics

And also useful  ( more ) pages ...

https://en.wikipedia.org/wiki/Category:Communication_design
Category:Communication design


https://en.wikipedia.org/wiki/Category:Information_visualization
Category:Information visualization


https://en.wikipedia.org/wiki/Category:Visualization_(graphic)
Category:Visualization (graphic)

  .
  .
  .

This means that your problem is not so easy to handle as seen from a
distant point .



With my best wishes for all ,


Mehmet Erol Sanliturk










> On 18/1/22 9:53 am, Mehmet Erol Sanliturk wrote:
>
>
>
> On Tue, Jan 18, 2022 at 2:37 AM Steve Gatenby via lazarus <
> lazarus@lists.lazarus-ide.org> wrote:
>
>> Thanks Marc - seems I will need to stick with what I have then.
>>
>> Currently I am pulling all object info from the SVG into an array and
>> assigning quadrant positions.
>>
>> Then do best guess by relative quadrant of mouse click position - works
>> fine, but feels sloppy :)
>>
>>
>
> If it is feasible for you , you may do the following :
>
>
> In an array of a record , define approximate "bounding boxes" of your
> SVG graphic ( You may generate  a "bounding box" array conforming to the
> given SVG ) .
>
> In  the "bounding box" array record , you may define a pointer showing the
> SVG object .
> When a mouse click is obtained , you may search  "bounding box" array and
> if it is related with an element of the SVG , from it you reach to the SVG
> element and
> do whatever you want to do with it .
>
>
> https://en.wikipedia.org/wiki/Minimum_bounding_box
> Minimum bounding box
>
> ( Please see attached pages . )
>
>
> This idea may be considered as an alternative view which I can not say that
> it is very suitable for you . Only you may decide its usefulness .
>
>
>
> Mehmet Erol Sanliturk
>
>
>
>
>
>
>>
>> On 17/1/22 8:55 pm, Marc Weustink via lazarus wrote:
>> > I'm afraid there is no easy solution for that. SVGs are rendered from
>> > the first element to the last, where ever element (atleast in theory)
>> > can be a part of a given pixel. SVG elements do have a
>> > x,y,width,height but they may also be part of one or more
>> > transformations.
>> > To give you an idea, the (browser)app I'm currently working on
>> > displays several object, where every object has an origin(x,y) of 0,0
>> > and they are finally placed by translations.
>> > The easiest way (if you are in a browser context) is to add an onclick
>> > handler to your elements of interest.
>> >
>> > Marc
>> >
>> >
>> >
>> > On 16-1-2022 23:34, Steve Gatenby via lazarus wrote:
>> >> Not sure if this is the right place to ask about this one -
>> >>
>> >> I am using the BCSVGViewer from bgra controls - for SVG viewing
>> >> obviously :)
>> >>
>> >> Would anybody know if there is a method to retrieve the object
>> >> (within the svg) at specified x,y ?
>> >>
>> >> or is it possible to use embedded links within the svg ?
>> >>
>> >> I am looking to find which object has been clicked on within the svg
>> >> to create a 'clickable' map
>> >>
>> >> Any suggestions on a better place to post this 

Re: [Lazarus] SVG Object

2022-01-18 Thread Steve Gatenby via lazarus

Thanks Mehmet - I see some study coming my way :)


On 18/1/22 6:47 pm, Mehmet Erol Sanliturk wrote:



On Tue, Jan 18, 2022 at 7:22 AM Steve Gatenby via lazarus 
mailto:lazarus@lists.lazarus-ide.org>> 
wrote:


Thank you Mehmet -

Tried to follow the math within the svg (inkscape) on my first
attempt(s)

got completely lost (which leads to questioning ones intelligence)
on the transforms, scales and differing units :)

So now fully fudging it by dividing the Svg source Height and
Width by a grid format and call each one a quadrant location (x,y).

Then do the same with the OnClick position of the viewer (so
relative quadrants / sizes), and find closest matching (for me)
object. All depends on granularity of grid for accuracy.

Works, but is very dependent on complexity of the svg (not a
problem for my use case so far)



My primary profession was "Elementary School Teacher" . In our 
profession ,
determiner factor is not intelligence ( because everyone virtually has 
sufficient amount of it )
but  "work with respect to scientific principles ,  continuous efforts 
, knowledge of the subject" .  Please do not blame yourself with 
respect to intelligence .


Later on I went to the Middle East Technical University ( Ankara , 
Turkey ) to be a
( Mathematician , Computer Expert , a Good Manager of Money ( I have 
never been able
to earn sufficient money to manage other than my monthly salaries )) , 
and then an
instructor in another University ( Hacettepe ) . Always my emphasized 
point to my

students and nearly every other one around me was the principle :
"Not intelligence , but sufficient study and work" .


My opinion is that you also need sufficient study and work , not 
intelligence because

it is easily understandable that you have plenty of it .

You may see the following page and its associated subpages leading you to
"Computer Graphics" books if you think you need to review or learn 
subjects about

it .


https://en.wikipedia.org/wiki/Category:Computer_graphics 


Category:Computer graphics

And also useful  ( more ) pages ...

https://en.wikipedia.org/wiki/Category:Communication_design 


Category:Communication design


https://en.wikipedia.org/wiki/Category:Information_visualization 


Category:Information visualization


https://en.wikipedia.org/wiki/Category:Visualization_(graphic) 


Category:Visualization (graphic)

  .
  .
  .

This means that your problem is not so easy to handle as seen from a 
distant point .




With my best wishes for all ,


Mehmet Erol Sanliturk








On 18/1/22 9:53 am, Mehmet Erol Sanliturk wrote:



On Tue, Jan 18, 2022 at 2:37 AM Steve Gatenby via lazarus
mailto:lazarus@lists.lazarus-ide.org>> wrote:

Thanks Marc - seems I will need to stick with what I have then.

Currently I am pulling all object info from the SVG into an
array and
assigning quadrant positions.

Then do best guess by relative quadrant of mouse click
position - works
fine, but feels sloppy :)



If it is feasible for you , you may do the following :


In an array of a record , define approximate "bounding boxes" of your
SVG graphic ( You may generate  a "bounding box" array conforming
to the given SVG ) .

In the "bounding box" array record , you may define a pointer
showing the SVG object .
When a mouse click is obtained , you may search "bounding box"
array and
if it is related with an element of the SVG , from it you reach
to the SVG element and
do whatever you want to do with it .


https://en.wikipedia.org/wiki/Minimum_bounding_box

Minimum bounding box

( Please see attached pages . )


This idea may be considered as an alternative view which I can
not say that
it is very suitable for you . Only you may decide its usefulness .



Mehmet Erol Sanliturk





On 17/1/22 8:55 pm, Marc Weustink via lazarus wrote:
> I'm afraid there is no easy solution for that. SVGs are
rendered from
> the first element to the last, where ever element (atleast
in theory)
> can be a part of a given pixel. SVG elements do have a
> x,y,width,height but they may also be part of one or more
> transformations.
> To give you an idea, the (browser)app I'm currently working on
> displays several object, where every object has an
origin(x,y) of 0,0
> and they are finally placed by translations.
> The easiest way (if you are in a browser context) is to add
an onclick
> handler to your elements of interest.