首页 > 编程语言 >shader编程基础:画线

shader编程基础:画线

时间:2023-05-16 11:11:25浏览次数:48  
标签:编程 画线 uv curve shader vec2 vec3 曲线 col

以sin曲线为例,任何函数曲线画法类似。
画线原理虽然十分简单,却是复杂图形曲线绘制的基础。
uv和smoothstep等函数不清楚请参考跳转链接: shader编程基础:画圆
image

#define T .01

void mainImage( out vec4 fragColor, in vec2 fragCoord )
{
	vec2 uv = (fragCoord.xy-0.5 * iResolution.xy) / iResolution.y; 
    vec3 col = vec3(0.);
    
    uv *= 4.;
    
    
    vec2 curve = vec2(uv.x, sin(uv.x + iTime * 3.1415926));
    float d = length(uv - curve);
    col += smoothstep(T, .0, d);

    fragColor = vec4(col, 1.);
}
  • T:线的粗细
  • uv: 像素在屏幕空间的标准化位置
  • curve:sin曲线在当前标准化坐标系x = uv.x下的位置
  • d:当前uv坐标距离curve的长度

同过映射将确定当前坐标点的uv,计算当前曲线x = uv.x的位置,进而计算当前uv坐标和curve在x = uv.x的坐标的距离长度,通过smoothstep计算显示的颜色(即距离d < 0输出为1, 0 < d < 0.01输出为1到0,d > 0.01输出为0),越靠近曲线颜色变白,远离曲线变黑,直到到达T即0.01,颜色col = vec3(1., 1., 1.)纯黑。

标签:编程,画线,uv,curve,shader,vec2,vec3,曲线,col
From: https://www.cnblogs.com/hggzhang/p/17325009.html

相关文章

  • 基于FPGA的点阵屏设计,基于Quartus ii开发,Verilog编程语言,也可移植到vivado开发。
    基于FPGA的点阵屏设计,基于Quartusii开发,Verilog编程语言,也可移植到vivado开发。1、可以显示多个汉字2、暂停、启动控制3、左移右移控制4、调速控制。ID:78800675311255672......
  • 电力系统暂态稳定性Matlab编程/ Simulink仿真 单机无穷大系统发生
    电力系统暂态稳定性Matlab编程/Simulink仿真单机无穷大系统发生各类(三相短路,单相接地,两相接地,两相相间短路)等短路故障,各类(单相断线,两相断线,三相断线)等断线故障,暂态稳定仿真分析1.Matlab编程进行数值分析(采用欧拉法Euler,改进欧拉法improveEuler,4阶龙格库塔法Runger-Kutta),计算故障......
  • 电力系统静态稳定性仿真Matlab编程/simulink仿真 1.用Matlab
    电力系统静态稳定性仿真Matlab编程/simulink仿真1.用Matlab编程,把转子运动方程(摇摆方程)在运行点处线性化,采用小信号分析法,对线性化之后状态方程的系数矩阵求解特征值,根轨迹,通过特征值的特点来判断系统稳定性。2.用simulink搭建搭建单机无穷大系统,对其静态稳定性进行仿真分析。YID:......
  • 3机9节点系统暂态稳定Matlab编程/simulink仿真 1.Matlab编程计
    3机9节点系统暂态稳定Matlab编程/simulink仿真1.Matlab编程计算摇摆曲线,得到3机9节点系统中3台发电机的功角曲线以及转速曲线,通过分析各发电机之间的功角差和转速差来分析系统暂态稳定性。2.基于Simulink平台,搭建3机9节点系统,通过时域仿真,得到三台机组的功角曲线和转速差曲线,以此......
  • 电力系统静态稳定性仿真Matlab编程/simulink仿真 1.用Matlab编程,把转子
    电力系统静态稳定性仿真Matlab编程/simulink仿真1.用Matlab编程,把转子运动方程(摇摆方程)在运行点处线性化,采用小信号分析法,对线性化之后状态方程的系数矩阵求解特征值,根轨迹,通过特征值的特点来判断系统稳定性。2.用simulink搭建搭建单机无穷大系统,对其静态稳定性进行仿真分析。ID:2......
  • 三段式电流保护Matlab编程/ Simulink仿真 1. Matlab编程计算三段式
    三段式电流保护Matlab编程/Simulink仿真1.Matlab编程计算三段式电流保护的整定值,并进行灵敏度校验;2.Simulink搭建仿真模型,对三段式电流保护模型进行仿真分析。ID:47100675825813651......
  • 基于粒子群算法的配网重构/ Matlab编程 以配电网络中网损最小作为目标
    基于粒子群算法的配网重构/Matlab编程以配电网络中网损最小作为目标函数,通过粒子群算法求得使系统网损最小时的网络拓扑结构。注:下图为程序在IEEE33节点配网系统上的仿真结果图ID:31200676737927322......
  • 电力系统暂态稳定性Matlab编程/ Simulink仿真 单机无穷大系统发生
    电力系统暂态稳定性Matlab编程/Simulink仿真单机无穷大系统发生各类(三相短路,单相接地,两相接地,两相相间短路)等短路故障,各类(单相断线,两相断线,三相断线)等断线故障,暂态稳定仿真分析1.Matlab编程进行数值分析(采用欧拉法Euler,改进欧拉法improveEuler,4阶龙格库塔法Runger-Kutta),计算故障......
  • m基于matlab的模糊控制器仿真实现,采用matlab编程方式定义模糊规则,隶属函数等
    1.算法仿真效果matlab2022a仿真结果如下:    2.算法涉及理论知识概要       利用模糊数学的基本思想和理论的控制方法。在传统的控制领域里,控制系统动态模式的精确与否是影响控制优劣的最主要关键。系统动态的信息越详细,则越能达到精确控制的目的。    ......
  • Python金融应用编程:衍生品定价和套期保值的随机过程|附代码数据
    全文链接:http://tecdat.cn/?p=5620最近我们被客户要求撰写关于金融应用编程的研究报告,包括一些图形和统计输出。在本文中随机过程对定量融资的许多方面都很有用,包括但不限于衍生品定价,风险管理和投资管理这些应用程序将在本文后面进一步详细讨论。本节介绍了量化融资中使用的一......