动态绘制虚线,可以参考如下内容:、被称为点画的影响。不幸的是,点画已经从OpenGL的删除,但幸运的是,有几种方法仍然得到的效果。我们必须充分利用的OpenGL的着色语言的这项任务。 顶点着色器:uniform mat4 u_modelViewProjectionMatrix;uniform mat4 mv;attribute vec4 a_position;attribute vec4 a_color;varying vec4 v_color;varying vec4 position;void main() { gl_Position = u_modelViewProjectionMatrix * a_position; position = mv * a_position; v_color = a_color;}着色器:precision mediump float;uniform vec2 sourcePoint;varying vec4 v_color;varying vec4 position;void main() { if (cos(0.1*abs(distance(sourcePoint.xy, position.xy))) + 0.5 > 0.0) { gl_FragColor = vec4(0,0,0,0); } else { gl_FragColor = v_color; }}我没有在这里找到本教程中,我测试了,这里是我的结果: 正如罗斯托夫在这个线程解释,这里最大的部分是sourcePoint。 的关键 CodeGo.net,整个事情是sourcePoint被传递的 该行的起源。 如果你不喜欢这种方式也存在textures图案的效果。有与α虚线效果textures,并将其应用到您的线路。2.我找到了一个更好的解决方案。它的水平和垂直线。#define DOT_VERTEX_CODE \ "attribute vec4 a_Position;" \ "uniform mat4 projectionMatrix;" \ "varying vec2 v_xy;" \ "void main() {gl_PointSize = 1.0; gl_Position = a_Position*projectionMatrix; v_xy = a_Position.xy;}"#define DOT_FRAGMENT_CODE \ "precision mediump float;" \ "varying vec2 v_xy;" \ "uniform float isVert;" \ "uniform vec4 color1;" \ "uniform vec4 color2;" \ "void main() {gl_FragColor = mod(isVert > 0.0 ? v_xy.y : v_xy.x, 2.0) >= 1.0 ? color1 : color2;}"