#define SMOOTH(r,R) (1.0-smoothstep(R-1.0,R+1.0, r))
#define RANGE(a,b,x) ( step(a,x)*(1.0-step(b,x)) )
#define RS(a,b,x) ( smoothstep(a-1.0,a+1.0,x)*(1.0-smoothstep(b-1.0,b+1.0,x)) )
#define M_PI 3.1415926535897932384626433832795
#define blue1 vec3(0.74,0.95,1.00)
#define blue2 vec3(0.87,0.98,1.00)
#define blue3 vec3(0.35,0.76,0.83)
#define blue4 vec3(0.953,0.969,0.89)
#define red vec3(1.00,0.38,0.227)
#define MOV(a,b,c,d,t) (vec2(a*cos(t)+b*cos(0.1*(t)), c*sin(t)+d*cos(0.1*(t))))
float movingLine(vec2 uv, vec2 center, float radius)
{
//angle of the line
float theta0 = 90.0 * iTime;
vec2 d = uv - center;
float r = sqrt( dot( d, d ) );
if(r<radius)
{
//compute the distance to the line theta=theta0
vec2 p = radius*vec2(cos(theta0*M_PI/180.0),
-sin(theta0*M_PI/180.0));
float l = length( d - p*clamp( dot(d,p)/dot(p,p), 0.0, 1.0) );
d = normalize(d);
//compute gradient based on angle difference to theta0
&

这篇博客介绍了一种使用QT库结合OpenGL进行图形绘制的方法,展示了如何创建雷达图效果。文章详细讲解了多个自定义函数,如`movingLine`、`circle`、`circle2`等,用于绘制线条、圆圈和角度线。通过这些函数,作者实现了雷达图的动态变化,包括不同形状、颜色和动画效果。最终,这些函数被整合到`mainImage`函数中,生成了完整的雷达图表。适合对QT图形编程感兴趣的读者学习。
最低0.47元/天 解锁文章
901

被折叠的 条评论
为什么被折叠?



