Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在OpenGL中填充java形状

如何在OpenGL中填充java形状
EN

Stack Overflow用户
提问于 2021-12-12 03:05:20
回答 1查看 64关注 0票数 1

好吧,假设我有O的形状,我想渲染它。

现在,我的当前呈现代码如下:

代码语言:javascript
运行
AI代码解释
复制
public void fill(Shape shape, float xOffset, float yOffset) {
        AffineTransform transform = new AffineTransform();
        transform.translate(xOffset, yOffset);
        PathIterator pi = shape.getPathIterator(transform, 1);
        int winding = pi.getWindingRule();
        ShapeRenderer r = getInstance();
        float[] coords = new float[6];
        boolean drawing = false;
        while (!pi.isDone()) {
            int segment = pi.currentSegment(coords);
            switch (segment) {
            case PathIterator.SEG_CLOSE:
                if (drawing) {
                    r.endPoly();
                }
                break;
            case PathIterator.SEG_LINETO:
                r.lineTo(coords);
                break;
            case PathIterator.SEG_MOVETO:
                if (drawing) {
                    r.endPoly();
                }
                drawing = true;
                r.beginPoly(winding);
                r.moveTo(coords);
                break;
            default:
                throw new IllegalArgumentException("Unexpected value: " + segment);
            }
            pi.next();
        }
    }

ShapeRenderer:

代码语言:javascript
运行
AI代码解释
复制
private final Deque<Queue<Float>> vertices = new ConcurrentLinkedDeque<>();

    @Override
    public void beginPoly(int windingRule) {
    }

    @Override
    public void endPoly() {
        Queue<Float> q;
        GL11.glBegin(GL11.GL_LINE_LOOP);
        while ((q = vertices.poll()) != null) {
            Float x, y;
            while ((x = q.poll()) != null && (y = q.poll()) != null) {
                GL11.glVertex2f(x, y);
            }
        }
        GL11.glEnd();
    }

    @Override
    public void moveTo(float[] vertex) {
        Queue<Float> q = new ConcurrentLinkedQueue<>();
        vertices.offer(q);
        lineTo(vertex);
    }

    @Override
    public void lineTo(float[] vertex) {
        Queue<Float> q = vertices.peekLast();
        q.offer(vertex[0]);
        q.offer(vertex[1]);
    }

就像java awt一样,我想成功地填充这个形状.我该怎么做?(已经尝试使用GL_POLYGON,但它只填充了整个O,我有一个填充的圆圈,没有一个O。也尝试使用部分慢跑glu,但它只是没有提供任何线索,不知道为什么)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-12-12 03:15:53

已经尝试过使用GL_POLYGON,但它只填充了整个O,而我有一个填充的循环,“

当然可以。GL_POLYGON用于凸性形状,并填充由多边形包围的整个区域。

你有两个选择:

  1. 使用GL_POLYGON两次绘制白色形状,然后在白色形状内绘制红色形状。
  2. 使用GL_TRIANGLE_STRIP并形成一个只绘制轮廓的形状。原语可以通过在外部轮廓和内部轮廓上交替指定一个点来形成。
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70322976

复制
相关文章
图表美化教程|图案与形状填充
▽▼▽ 今天教大家简单的图表形状填充。 ●●●●● 首先是一个已经做好的柱形图。 每天都看着这样的图表时间久了也会看腻的,那么一个小小的柱形图到底可以衍生出多少新花样呢! 今天教大家三种图表美化思路
数据小磨坊
2018/04/10
1.5K0
图表美化教程|图案与形状填充
OpenGL 学习系列---基本形状的绘制
在之前的一篇博客中,讲述了 OpenGL 基础绘制流程 及相关的代码,其中关于 OpenGL 程序编译部分都是可以在其他项目中接着复用的,接下来会讲到如何去绘制其他的基本图元。
音视频开发进阶
2019/07/25
2K0
SwiftUI:使用 CGAffineTransform 和奇偶填充来变换形状
当您不再满足于简单的形状和路径时,SwiftUI的两个有用功能会合在一起,以极少的工作量创建出漂亮的效果。第一个是CGAffineTransform,它描述了如何旋转,缩放或剪切路径或视图。第二个是奇偶填充(even-odd fills),它使我们可以控制应如何渲染重叠的形状。
韦弦zhy
2020/05/08
1.5K0
dotnet OpenXml SDK 形状填充渐变色的主题色
在 Office 文档的一些有趣的设计,颜色和画刷是可以继承的,这个继承包括了属性的继承。在形状填充里面使用的渐变色是可以一部分属性放在主题里面,主要找到主题里面的画刷,替换掉形状自己定义的内容,才是形状的画刷
林德熙
2022/08/12
4870
dotnet OpenXml SDK 形状填充渐变色的主题色
使用Word将图片裁剪成各种不同形状,如圆形。
1、点击[插入] 2、点击[形状] 3、点击[椭圆] 4、点击[文本] 5、按<Shift>键 6、点击[格式] 7、点击[形状填充] 8、点击[图片] 9、点击[来自文件] 10、点击[早餐优惠券图片] 11、点击[1.jpg] 12、点击[插入]
裴来凡
2022/05/28
1.9K0
使用Word将图片裁剪成各种不同形状,如圆形。
OpenGL(五)-- OpenGL中矩阵的变换OpenGL(五)-- OpenGL中矩阵的变换
通过模型矩阵,观察者矩阵(View Matrix),投影矩阵(Projection Matrix)三步矩阵变换后最终确定该展示怎样的图像。要注意的是矩阵的计算时从右往左的所以: result = 投影矩阵 * 观察者矩阵 * 模型矩阵。
用户8893176
2021/08/09
2.4K0
OpenGL(五)-- OpenGL中矩阵的变换OpenGL(五)-- OpenGL中矩阵的变换
Excel图表学习63: 使用形状填充技术绘制图片信息图表
看看下图1所示的图表,是不是非常有趣且表达得非常生动,这是使用形状填充技术来绘制的图表。
fanjy
2019/12/24
1.2K0
如何在Java中处理JSON
New 一个 ObjectMapper对象,后续将利用这个ObjectMapper对象来进行一系列的操作。
泰坦HW
2020/07/22
1.7K0
代码在内存中的'形状'
代码在内存中的'形状' http://zoo.zhengcaiyun.cn/blog/article/code-shape
政采云前端团队
2023/02/27
5120
代码在内存中的'形状'
Python+OpenGL绘制任意形状的三次贝塞尔曲线
编写Python程序,调用OpenGL接口,绘制三次贝塞尔曲线,通过鼠标可以自由调整控制点位置,从而影响贝塞尔曲线的形状。
Python小屋屋主
2022/03/07
7670
Python+OpenGL绘制任意形状的三次贝塞尔曲线
OpenGL (二)--OpenGL中那些晦涩难懂的名词、动词解析OpenGL (二)--OpenGL中那些晦涩难懂的名词、动词解析
说起图形处理,一定是离不开GPU的,因为我们所做的操作,最终都会由GPU负责展示到监视器上。而这个过程中就离不开计算,计算每一个像素点的颜色信息。所以GPU是计算图像数据的单元。 说起计算,在我的理解里CPU就是专门用于做二进制运算的计算单元、控制单元,可以处理复杂的逻辑和依赖,那为什么还需要GPU呢?
用户8893176
2021/08/09
1.1K0
OpenGL (二)--OpenGL中那些晦涩难懂的名词、动词解析OpenGL (二)--OpenGL中那些晦涩难懂的名词、动词解析
java卸载dll,如何在java中卸载Dll?[通俗易懂]
I have written a Java agent in Lotus Notes 8.5 to reset token’s PIN using
全栈程序员站长
2022/08/30
2K0
【DB笔试面试511】如何在Oracle中写操作系统文件,如写日志?
可以利用UTL_FILE包,但是,在此之前,要注意设置好UTL_FILE_DIR初始化参数。
AiDBA宝典
2019/09/30
31.6K0
【DB笔试面试511】如何在Oracle中写操作系统文件,如写日志?
【OpenGL】二十三、OpenGL 光照中的法线原理
法线是红色的虚线 , 左侧的箭头是光照射的方向 , 右侧的箭头是根据法线反射的光线 , 如下图所示 :
韩曙亮
2023/03/28
8520
【OpenGL】二十三、OpenGL 光照中的法线原理
如何在Java中逐行读取文件
本文翻译自How to read a file line by line in Java
ccf19881030
2020/11/24
10.8K0
OpenCV中几何形状识别与测量
OpenCV中几何形状识别与测量 ---- 写有代码的文章、做有情怀的人 ---- 经常看到有学习OpenCV不久的人提问,如何识别一些简单的几何形状与它们的颜色,其实通过OpenCV的轮廓发现与几何分析相关的函数,只需不到100行的代码就可以很好的实现这些简单几何形状识别与对象测量相关操作。本文就会演示给大家如何通过OpenCV 轮廓发现与几何分析相关函数实现如下功能: 几何形状识别(识别三角形、四边形/矩形、多边形、圆) 计算几何形状面积与周长、中心位置 提取几何形状的颜色 在具体代码实现与程序演示之前
OpenCV学堂
2018/04/18
7.6K0
OpenCV中几何形状识别与测量
向容器中填充元素---fill
利用fill可以将容器区间填充为指定的值 属于算术生成算法一类的小型算法-----需要包含头文件numeric
大忽悠爱学习
2021/03/02
6710
向容器中填充元素---fill
OpenGL中的投影使用
在OpenGL中,投影矩阵指定了可视区域的大小和形状。对于正投影与透视投影这两种不同的投影类型,它们分别有各自的用途。
全栈程序员站长
2022/07/12
8640
OpenGL中的投影使用
Java开发中如何自动填充SQL语句中的公共字段
我们在设计数据库的时候一定会带上新增、更新的时间、操作者等审计信息。之所以带这些信息是因为假如有一天公司的数据库被人为删了,尽管可能有数据库备份可以恢复数据。但是我们仍然需要追踪到这个事是谁干的,在什么时间干的,具体干了哪些事等等,方便定责和修补。但是我们变更每条数据都要去显式变更这些信息就十分繁琐,我们希望无感知的来处理这些信息。
码农小胖哥
2020/09/28
2.2K0
点击加载更多

相似问题

如何在Java OpenGL中检测和更改形状

114

Opengl不规则形状颜色填充

32

形状中的填充颜色,如Paper.io

13

在OpenGL中使用C++填充形状

11

如何在Java swing中用ImageIcon填充形状?

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档