[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: plotted circle is regular decagon on opengl graphics
From: |
Tatsuro MATSUOKA |
Subject: |
Re: plotted circle is regular decagon on opengl graphics |
Date: |
Fri, 12 Aug 2016 12:03:36 +0900 (JST) |
----- Original Message -----
> From: Daniel J Sebald
> To: Andreas Weber ; Tatsuro MATSUOKA ; "octave-maintainers
> Cc:
> Date: 2016/8/12, Fri 04:25
> Subject: Re: plotted circle is regular decagon on opengl graphics
>
> On 08/11/2016 03:12 AM, Andreas Weber wrote:
>> Hi Tatsuro,
>>
>> Am 11.08.2016 um 08:17 schrieb Tatsuro MATSUOKA:
>>> Graphics tool kit: qt and fltk
>>> plot (1:1, 'o', 'markersize', 24)
>>> print -depsc circle.eps
>>> plotted circle is regular decagon (ugly).
>>
>> The code to draw the markers with OpenGL is in gl-render.cc
>> opengl_renderer::make_marker_list
>>
>> case 'o':
>> {
>> double ang_step = M_PI / 5;
>>
>> glBegin ((filled ? GL_POLYGON : GL_LINE_LOOP));
>> for (double ang = 0; ang < (2*M_PI); ang += ang_step)
>> glVertex2d (sz*cos (ang)/2, sz*sin (ang)/2);
>> glEnd ();
>> }
>>
>> As you can see the decagon is hardcoded. AFAIK there is no "draw
> circle"
>> command in OpenGL so the only way to get a smoother circle would be to
>> increase the numer of segments.
>
> I'm surprised there is no type of primitive for arcs in OpenGL (or its
> utility library GLU) so that hardware/CPU optimization on graphics card
> drivers
> could be used.
>
> The performance cost is the cos/sin computations, not the underlying driver.
> The driver essentially sweeps out the same arc no matter how fine the angular
> resolution is (i.e., it may draw more polygon lines, but the individual
> polygon
> lines are shorter so don't need as many computations to complete).
>
> Rik's changeset works, e.g., test:
>
> graphics_toolkit ('qt')
> plot(rand(6,1), rand(6,1), 'or')
> set(get(gca,'children'),'MarkerSize',100)
> set(get(gca,'children'),'MarkerFaceColor','green')
>
> Attached is another algorithm using Pythagorean theorem that seems to work
> too.
>
> Dan
I have confirmed that now plotting of 'o' very smooth.
Thanks!
Tatsuro