android - 绘制固定长度曲线

标签 android ios graphics opengl-es curve

其实我不知道这是怎么调用的,但是:

我想实现这样的功能:我正在用光标绘制曲线。这条线必须是例如100 像素长度,不再......当这条曲线的长度变得大于 100 px 时,最后一个(旧)像素必须被隐藏(删除)......我不认为创建这个数组像素是个好主意,所以我需要你的建议,请

最佳答案

由于 OpenGLES 不支持 glBegin/End,除了数组之外,您别无选择。由于 100px 不太适合重新分配,因此您可以使用链接列表结构来存储像素数据,然后在每次发生更新(输入事件)时重建 Opengl 缓冲区。

我可以建议使用数组来代替链表,通过保存开始和结束索引并让它们在数组中循环。但你需要小心小数点。伪代码如下所示:

    public void addVertice(float x,float y){
    {
        if(curveLength<MAX_CURVE_SIZE)
        {
            ar[end][0]=x;
            ar[end][1]=y;
            end++;
            curveLength++;
        }
        else{
            ar[end][0]=x;
            ar[end][1]=y;
            end=1+(end+1)%(MAX_CURVE_SIZE-1);// cycle, but never left only one element in array
            start=1+(start+1)%(MAX_CURVE_SIZE-1);
            ar[MAX_CURVE_SIZE][0]=ar[1][0];
            ar[MAX_CURVE_SIZE][1]=ar[1][0];
            ar[0][0]=ar[MAX_CURVE_SIZE-1][0];
            ar[0][1]=ar[MAX_CURVE_SIZE-1][0];


        }
        updateBuffers();
    }

要绘制缓冲区,您需要处理两个位置;如果start小于end,则将start绘制到end。如果 start 大于 end,则需要将 start 绘制到 MAX_CURVE_LENGTH,将 0 绘制到 end 。对于两者,您可以使用相同的索引缓冲区。

关于android - 绘制固定长度曲线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8963243/

相关文章:

android - setMinimumWidth() 在 android View 中使用什么测量单位?

android - 尝试访问游标数据时出错

android - 使用 ViewPagerIndicator 的 FragmentPagerAdapter 不工作

objective-c - 找到匹配的 NSDictionary

graphics - 绘制像素化的纹理

c - 图案洪水填充算法

java - 如何在点击推送通知时打开特定 Activity

ios - 比较两个 NSDate 对象是否相同

ios - 学习 Swift 并尝试在标签中创建字符串循环

android - Unity 法线贴图不适用于 Android 设备