AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / user-233928

Dov's questions

Martin Hope
Dov
Asked: 2024-11-10 10:58:31 +0800 CST

使用Processing P3D(OpenGL)纹理没有绘制,没有报错

  • 5

以下程序在使用底层 OpenGL 处理时正确渲染了带纹理的四边形。纹理在此处土星环的纹理

PShape s;
void setup() {
  size(800, 800, P3D);
  PImage ringtexture = loadImage("saturnringcolor.jpg");
  textureMode(NORMAL);
  fill(150, 0, 0);
  s = createShape();
  s.beginShape();
  s.texture(ringtexture);
  final float INSET = 10;
  final float x1 = INSET, x2 = width - INSET;
  final float y1 = INSET, y2 = height - INSET;
  s.vertex(x1+50, y1, 0, 0);
  s.vertex(x2-50, y1, 1, 0);
  s.vertex(x2, y2, 1, 1);
  s.vertex(x1, y2, 0, 1);
  s.endShape();
  background(0);
  shape(s);
}

当我创建一个包含多个四边形的环并尝试应用纹理时,它只是一种米色。

void setup() {
  size(800,800,P3D);
  PImage ringtexture = loadImage("saturnringcolor.jpg");
  PShape s = createShape();
  s.beginShape(QUADS);
  s.noStroke();

  float r2 = 250, r = 200;
  float nexta;
  s.texture(ringtexture);
  for (float a = 0; a < PI*2; a = nexta) {
    nexta = a + PI / 30;
    // Define the 4 corners of the quad
    s.vertex(r2 * cos(a), r2 * sin(a), 0, 0);
    s.vertex(r2 * cos(nexta), r2 * sin(nexta), 1, 0);
    s.vertex(r * cos(nexta), r * sin(nexta), 1, 1);
    s.vertex(r * cos(a), r * sin(a), 0, 1);
  }
  s.endShape();
  background(0);
  translate(width/2, height/2);
  shape(s);
}

除此之外,还有一张单独的透明图像,因为土星环有间隙。我想我必须将这两幅图像合并起来,并以支持它的格式获取 alpha 通道。那么将 jpeg 更改为 png 吗?

opengl
  • 1 个回答
  • 26 Views
Martin Hope
Dov
Asked: 2024-01-22 21:08:39 +0800 CST

Antlr4 程序调用测试代码的构造函数两次,我做错了什么?

  • 6

我编写了一个语法测试,在构造函数中是一个被执行两次的打印。我该如何解决?

首先,这是语法:

grammar simple_grail;

prog: tag_block ;

tag_block: tag*;

/* root definition of any tag in Grail */
tag:
    p | div | canvas | rect | button | txt | textlit;

p: '<' 'p' CLASS_NAME? '>' tag_block '<' '/' 'p' '>' ;
div: '<' 'div' CLASS_NAME? '>' tag_block '<' '/' 'div' '>' ;
canvas: '<' 'canvas' CLASS_NAME? '>' tag_block '<' '/' 'canvas' '>' ;
rect:
     '<' 'rect' CLASS_NAME?
     'x' ASSIGN_COORD 'y' ASSIGN_COORD 'w' ASSIGN_COORD 'h' ASSIGN_COORD
     '/>' ;
button:
    '<' 'button' CLASS_NAME? (NAME)? 'text' ASSIGN_TEXT '/>' ;
txt:
    '<' 'text' 'x' ASSIGN_COORD 'y' ASSIGN_COORD '/>' ;

textlit:
    TEXT
    ;

CLASS_NAME: [a-zA-Z_] [a-zA-Z_0-9]* ;

ASSIGN_COORD: '=' [0-9]+ ;

name: 'name' '=' NAME ;

NAME: [A-Za-z_][A-Za-z_0-9]* ;

ASSIGN_TEXT: '=' ('"' [^"]* '"' | '\'' [^']* '\'');

TEXT: ~[<]+ ;

SimpleGrailParser 的相关部分是:

public class simple_grailTagsImpl {
    @Override public void enterProg(simple_grailParser.ProgContext ctx) {
        numInstructions = 0;
        numInts = 0;
        numFloats = 0;
        numStrings = 0;
        System.out.println("Starting program size=0");
    }
}

加载它的主程序在这里。不知何故,它两次输入语法的主要规则

Starting program size=0
Starting program size=0

import org.antlr.v4.runtime.*;
import org.antlr.v4.runtime.tree.*;
public class SimpleGrailParser {
    public static void main(String[] args) {
        String text = "<p>text is here</p>";
        simple_grailLexer lexer = new simple_grailLexer(CharStreams.fromString(text));
        CommonTokenStream tokens = new CommonTokenStream(lexer);
        simple_grailParser parser = new simple_grailParser(tokens);
        simple_grailTagsImpl listener= new simple_grailTagsImpl();
        parser.addParseListener(listener);
        ParseTree tree = parser.prog();
        ParseTreeWalker.DEFAULT.walk(listener, tree);
    }
}
parsing
  • 1 个回答
  • 10 Views
Martin Hope
Dov
Asked: 2024-01-22 19:53:08 +0800 CST

如何编写 ANTLR4 语法来解析匹配的 html 标签

  • 6

我编写了一个简单的解析器来尝试了解 ANTLR4 如何在具有匹配标签的 HTML 风格语言上工作。例如,如果有一个标签

<p> ... </p>

我认为它应该与一个规则相匹配:

p: '<' 'p' CLASS_NAME? '>' tag_block '<' '/' 'p' '>' ;

这看起来相当繁重,因为如果每个规则可以包含其他所有内容,我必须以这种方式手动编写每个规则。是否有一种通用的方法来编写规则,即对于可以包含其他标签的每种标签,前后的尖括号必须匹配?或者我只需为每一个都写一下:

p: '<' 'p' CLASS_NAME? '>' tag_block '<' '/' 'p' '>' ;
div: '<' 'div' CLASS_NAME? '>' tag_block '<' '/' 'div' '>' ;
canvas: '<' 'canvas' CLASS_NAME? '>' tag_block '<' '/' 'canvas' '>' ;

是否可以编写一个通用的复合标签,例如:

compoundtag: '<' ('p' | 'div' | 'canvas') CLASS_NAME? '>' tag_block '<' '/' ( MATCHING EARLIER NAME???) '>'

我确信我犯了更多错误,所以这里是完整的语法文件:

grammar simple_grail;

prog: tag_block ;

tag_block: (tag)*;

/* root definition of any tag in Grail */
tag:
    p | div | canvas | rect | button | txt | textlit;

p: '<' 'p' CLASS_NAME? '>' tag_block '<' '/' 'p' '>' ;
div: '<' 'div' CLASS_NAME? '>' tag_block '<' '/' 'div' '>' ;
canvas: '<' 'canvas' CLASS_NAME? '>' tag_block '<' '/' 'canvas' '>' ;
rect:
     '<' 'rect' CLASS_NAME?
     'x' ASSIGN_COORD 'y' ASSIGN_COORD 'w' ASSIGN_COORD 'h' ASSIGN_COORD
     '/>' ;
button:
    '<' 'button' (CLASS_NAME)? (NAME)? 'text' ASSIGN_TEXT '/>' ;
txt:
    '<' 'text' 'x' ASSIGN_COORD 'y' ASSIGN_COORD '/>' ;

textlit:
    TEXT?
    ;

CLASS_NAME: [a-zA-Z_] [a-zA-Z_0-9]* ;

ASSIGN_COORD: '=' [0-9]+ ;

name: 'name' '=' NAME ;

NAME: [A-Za-z_][A-Za-z_0-9]* ;

ASSIGN_TEXT: '=' ('"' [^"]* '"' | '\'' [^']* '\'');

TEXT: [^<]+ ;

我想解析第一个小程序:

<p>text goes here</p>

我希望 textlit 应该与文本匹配,对于像 p 这样的文本周围的标签,我应该覆盖 exitTextlit() 方法和 exitP() 来决定要做什么。如果我截取了 EnterP(),那么里面还没有文本。是对的吗?

有一个警告说我可以匹配空字符串,并且我知道如果我跳过空格会产生错误,但我不明白程序应该如何匹配:

<p></p>

如果textlit不能为空。

parsing
  • 1 个回答
  • 27 Views
Martin Hope
Dov
Asked: 2024-01-14 11:52:43 +0800 CST

解析JSON说函数parse_json不存在?

  • 6

以下代码失败并显示错误,指出parse_json未定义。

use strict;
use JSON::Parse;
my $x = "['a', 'b']";
my $json = parse_json($x);

但是,此页面声称它有效: https: //metacpan.org/pod/JSON::Parse

我究竟做错了什么?

json
  • 1 个回答
  • 28 Views
Martin Hope
Dov
Asked: 2023-12-26 02:30:52 +0800 CST

如何在 Leptonica 中读取包含多页图像的 pdf

  • 5

Tesseract 使用 leptonica 加载图像来执行 OCR:

#include <tesseract/baseapi.h>
#include <leptonica/allheaders.h>
int main() {
    tesseract::TessBaseAPI *api = new tesseract::TessBaseAPI();
    // Initialize tesseract-ocr with English, without specifying tessdata path
    if (api->Init(NULL, "eng")) {
        fprintf(stderr, "Could not initialize tesseract.\n");
        exit(1);
    }
    // Open input image with leptonica library
    Pix *image = pixRead("./test1dld.png");
    api->SetImage(image);
    ...

然而,对于批量测试的阅读,最简单的方法是使用复印机上的文档进纸器,并让机器通过电子邮件发送生成的单个 pdf 文件,其中每个页面都是位图。leptonica 文档提到转换为 pdf,但我根本找不到如何从 pdf 中读取,更不用说一次一页了。

谁能向我指出一个 API 调用,让我可以将位图 pdf 文件作为单独的位图一张一张地查看?最好是 ac API,而不是 shell 命令。

image
  • 1 个回答
  • 9 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    重新格式化数字,在固定位置插入分隔符

    • 6 个回答
  • Marko Smith

    为什么 C++20 概念会导致循环约束错误,而老式的 SFINAE 不会?

    • 2 个回答
  • Marko Smith

    VScode 自动卸载扩展的问题(Material 主题)

    • 2 个回答
  • Marko Smith

    Vue 3:创建时出错“预期标识符但发现‘导入’”[重复]

    • 1 个回答
  • Marko Smith

    具有指定基础类型但没有枚举器的“枚举类”的用途是什么?

    • 1 个回答
  • Marko Smith

    如何修复未手动导入的模块的 MODULE_NOT_FOUND 错误?

    • 6 个回答
  • Marko Smith

    `(表达式,左值) = 右值` 在 C 或 C++ 中是有效的赋值吗?为什么有些编译器会接受/拒绝它?

    • 3 个回答
  • Marko Smith

    在 C++ 中,一个不执行任何操作的空程序需要 204KB 的堆,但在 C 中则不需要

    • 1 个回答
  • Marko Smith

    PowerBI 目前与 BigQuery 不兼容:Simba 驱动程序与 Windows 更新有关

    • 2 个回答
  • Marko Smith

    AdMob:MobileAds.initialize() - 对于某些设备,“java.lang.Integer 无法转换为 java.lang.String”

    • 1 个回答
  • Martin Hope
    Fantastic Mr Fox msvc std::vector 实现中仅不接受可复制类型 2025-04-23 06:40:49 +0800 CST
  • Martin Hope
    Howard Hinnant 使用 chrono 查找下一个工作日 2025-04-21 08:30:25 +0800 CST
  • Martin Hope
    Fedor 构造函数的成员初始化程序可以包含另一个成员的初始化吗? 2025-04-15 01:01:44 +0800 CST
  • Martin Hope
    Petr Filipský 为什么 C++20 概念会导致循环约束错误,而老式的 SFINAE 不会? 2025-03-23 21:39:40 +0800 CST
  • Martin Hope
    Catskul C++20 是否进行了更改,允许从已知绑定数组“type(&)[N]”转换为未知绑定数组“type(&)[]”? 2025-03-04 06:57:53 +0800 CST
  • Martin Hope
    Stefan Pochmann 为什么 {2,3,10} 和 {x,3,10} (x=2) 的顺序不同? 2025-01-13 23:24:07 +0800 CST
  • Martin Hope
    Chad Feller 在 5.2 版中,bash 条件语句中的 [[ .. ]] 中的分号现在是可选的吗? 2024-10-21 05:50:33 +0800 CST
  • Martin Hope
    Wrench 为什么双破折号 (--) 会导致此 MariaDB 子句评估为 true? 2024-05-05 13:37:20 +0800 CST
  • Martin Hope
    Waket Zheng 为什么 `dict(id=1, **{'id': 2})` 有时会引发 `KeyError: 'id'` 而不是 TypeError? 2024-05-04 14:19:19 +0800 CST
  • Martin Hope
    user924 AdMob:MobileAds.initialize() - 对于某些设备,“java.lang.Integer 无法转换为 java.lang.String” 2024-03-20 03:12:31 +0800 CST

热门标签

python javascript c++ c# java typescript sql reactjs html

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve