【libGDX】使用ShapeRenderer绘制几何图形

news2024/9/25 7:26:31

1 ShapeRenderer 简介 

        ShapeRenderer 是 libGDX 中用于绘制基本形状的工具之一。它可以绘制点、线、矩形、多边形、圆形、椭圆形、扇形、立方体、圆锥体等几何图形。这对于在游戏或图形应用程序中绘制简单的形状是很有用的。

        ShapeRenderer 的主要方法如下:

        1)开始和结束绘制

// 开始绘制, ShapeType取值有: Point(点)、Line(线)、Filled(内部填充)
// 例: shapeRenderer.begin(ShapeRenderer.ShapeType.Line)
public void begin(ShapeType type)
public void begin() // ShapeType默认取值Line
// 结束绘制
public void end()

        说明:绘制相关逻辑需要放在 begin 和 end 之间。 

        2) 设置颜色和形状类型

// 设置图形颜色
public void setColor(float r, float g, float b, float a)
public void setColor(Color color)
// 设置ShapeType, 取值有: Point(点)、Line(线)、Filled(内部填充)
public void set (ShapeType type)

        3)模型变换矩阵

// transformMatrix矩阵
public void setTransformMatrix(Matrix4 matrix)
public void identity() // 重置transformMatrix
public void translate(float x, float y, float z) // 平移
public void rotate(float axisX, float axisY, float axisZ, float degrees) // 旋转
public void scale(float scaleX, float scaleY, float scaleZ) // 缩放

        4)投影变换矩阵

// projectionMatrix矩阵, 通常设置为camera.combined
public void setProjectionMatrix(Matrix4 matrix)
public Matrix4 getProjectionMatrix()

        5)绘制图形

// 绘制一个点
public void point(float x, float y, float z)

// 绘制一条线段
public final void line(float x, float y, float z, float x2, float y2, float z2)
public final void line(Vector3 v0, Vector3 v1)
public final void line(float x, float y, float x2, float y2)
public final void line(Vector2 v0, Vector2 v1)
public final void line(float x, float y, float x2, float y2, Color c1, Color c2)
public void line(float x, float y, float z, float x2, float y2, float z2, Color c1, Color c2)

// 绘制三角形
public void triangle(float x1, float y1, float x2, float y2, float x3, float y3)
public void triangle(float x1, float y1, float x2, float y2, float x3, float y3, Color col1, Color col2, Color col3)

// 绘制矩形
public void rect(float x, float y, float width, float height)
public void rect(float x, float y, float width, float height, Color col1, Color col2, Color col3, Color col4)
public void rect(float x, float y, float originX, float originY, float width, float height, float scaleX, float scaleY, float degrees)

// 绘制矩形线段
public void rectLine(float x1, float y1, float x2, float y2, float width)
public void rectLine(float x1, float y1, float x2, float y2, float width, Color c1, Color c2)
public void rectLine(Vector2 p1, Vector2 p2, float width)

// 绘制立方体
public void box(float x, float y, float z, float width, float height, float depth)

// 在指定位置绘制一个X形交叉线
public void x(float x, float y, float size)
public void x(Vector2 p, float size)

// 绘制扇形
public void arc(float x, float y, float radius, float start, float degrees)
public void arc(float x, float y, float radius, float start, float degrees, int segments)

// 绘制圆形
public void circle(float x, float y, float radius)
public void circle(float x, float y, float radius, int segments)

// 绘制椭圆形, x、y指椭圆左下角的位置坐标
public void ellipse(float x, float y, float width, float height)
public void ellipse(float x, float y, float width, float height, int segments)
public void ellipse(float x, float y, float width, float height, float rotation)
public void ellipse(float x, float y, float width, float height, float rotation, int segments)

// 绘制圆锥
public void cone(float x, float y, float z, float radius, float height)
public void cone(float x, float y, float z, float radius, float height, int segments)

// 绘制多边形(首尾相连, ShapeType只能取Line)
public void polygon(float[] vertices, int offset, int count)
public void polygon(float[] vertices)

// 绘制多边形(首尾不相连, ShapeType只能取Line)
public void polyline(float[] vertices, int offset, int count)
public void polyline(float[] vertices)

        说明:左下角为坐标原点,向右和向上分别为 x 轴和 y 轴正方向。 

2 ShapeRenderer 应用

2.1 绘制三角形

        MyGame.java

package com.zhyan8.game;

import com.badlogic.gdx.ApplicationAdapter;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.graphics.GL30;
import com.badlogic.gdx.graphics.glutils.ShapeRenderer;

public class MyGame extends ApplicationAdapter {
	private ShapeRenderer mShapeRenderer;
	
	@Override
	public void create () {
		mShapeRenderer = new ShapeRenderer();
	}

	@Override
	public void render () {
		Gdx.gl.glClearColor(0.455f, 0.725f, 1.0f, 1.0f);
		Gdx.gl.glClear(GL30.GL_COLOR_BUFFER_BIT);
		mShapeRenderer.begin(ShapeRenderer.ShapeType.Line); // ShapeType取值: Point、Line、Filled
		mShapeRenderer.setColor(1, 0, 0, 1); // 设置图形颜色
		mShapeRenderer.triangle(100, 100, 300, 100, 200, 300); // 绘制三角形
		mShapeRenderer.end();

		mShapeRenderer.begin(ShapeRenderer.ShapeType.Filled); // ShapeType取值: Point、Line、Filled
		mShapeRenderer.setColor(0, 1, 0, 1); // 设置图形颜色
		mShapeRenderer.triangle(350, 100, 550, 100, 450, 300); // 绘制三角形
		mShapeRenderer.end();
	}

	@Override
	public void dispose () {
		mShapeRenderer.dispose();
	}
}

        运行效果如下。

2.2 绘制矩形

        MyGame.java

package com.zhyan8.game;

import com.badlogic.gdx.ApplicationAdapter;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.graphics.GL30;
import com.badlogic.gdx.graphics.glutils.ShapeRenderer;

public class MyGame extends ApplicationAdapter {
	private ShapeRenderer mShapeRenderer;
	
	@Override
	public void create () {
		mShapeRenderer = new ShapeRenderer();
	}

	@Override
	public void render () {
		Gdx.gl.glClearColor(0.455f, 0.725f, 1.0f, 1.0f);
		Gdx.gl.glClear(GL30.GL_COLOR_BUFFER_BIT);
		mShapeRenderer.begin(ShapeRenderer.ShapeType.Line); // ShapeType取值: Point、Line、Filled
		mShapeRenderer.setColor(1, 0, 0, 1); // 设置图形颜色
		mShapeRenderer.rect(100, 100, 200, 200); // 绘制矩形
		mShapeRenderer.end();

		mShapeRenderer.begin(ShapeRenderer.ShapeType.Filled); // ShapeType取值: Point、Line、Filled
		mShapeRenderer.setColor(0, 1, 0, 1); // 设置图形颜色
		mShapeRenderer.rect(350, 100, 200, 300); // 绘制矩形
		mShapeRenderer.end();
	}

	@Override
	public void dispose () {
		mShapeRenderer.dispose();
	}
}

        运行效果如下。

2.3 绘制线框

        MyGame.java

package com.zhyan8.game;

import com.badlogic.gdx.ApplicationAdapter;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.graphics.GL30;
import com.badlogic.gdx.graphics.glutils.ShapeRenderer;

public class MyGame extends ApplicationAdapter {
	private ShapeRenderer mShapeRenderer;

	@Override
	public void create () {
		mShapeRenderer = new ShapeRenderer();
	}

	@Override
	public void render () {
		Gdx.gl.glClearColor(0.455f, 0.725f, 1.0f, 1.0f);
		Gdx.gl.glClear(GL30.GL_COLOR_BUFFER_BIT);
		shapeRenderer.begin(ShapeRenderer.ShapeType.Line); // ShapeType取值: Point、Line、Filled
		mShapeRenderer.setColor(1, 0, 0, 1); // 设置图形颜色
		mShapeRenderer.rectLine(100, 100, 300, 300, 20); // 绘制线框(不填充)
		mShapeRenderer.end();

		mShapeRenderer.begin(ShapeRenderer.ShapeType.Filled); // ShapeType取值: Point、Line、Filled
		mShapeRenderer.setColor(0, 1, 0, 1); // 设置图形颜色
		mShapeRenderer.rectLine(350, 100, 550, 300, 20); // 绘制线段(填充)
		mShapeRenderer.end();
	}

	@Override
	public void dispose () {
		mShapeRenderer.dispose();
	}
}

        运行效果如下。

2.4 绘制多边形

        MyGame.java

package com.zhyan8.game;

import com.badlogic.gdx.ApplicationAdapter;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.graphics.GL30;
import com.badlogic.gdx.graphics.glutils.ShapeRenderer;

public class MyGame extends ApplicationAdapter {
	private ShapeRenderer mShapeRenderer;

	@Override
	public void create () {
		mShapeRenderer = new ShapeRenderer();
	}

	@Override
	public void render () {
		Gdx.gl.glClearColor(0.455f, 0.725f, 1.0f, 1.0f);
		Gdx.gl.glClear(GL30.GL_COLOR_BUFFER_BIT);
		mShapeRenderer.begin(ShapeRenderer.ShapeType.Line); // ShapeType取值: Point、Line、Filled
		mShapeRenderer.setColor(1, 0, 0, 1); // 设置图形颜色
		drawPolygon5(); // 绘制正五边形
		drawPolygon6(); // 绘制正六边形
		mShapeRenderer.end();
	}

	@Override
	public void dispose () {
		mShapeRenderer.dispose();
	}

	private void drawPolygon5() { // 绘制正五边形
		float[] starVertices = calculatePolygonVertices(200, 250, 100, 5);
		mShapeRenderer.polygon(starVertices);
	}

	private void drawPolygon6() { // 绘制正六边形
		float[] starVertices = calculatePolygonVertices(450, 250, 100, 6);
		mShapeRenderer.polygon(starVertices);
	}

	private float[] calculatePolygonVertices(float x, float y, float size, int sides) { // 计算正n边形的顶点坐标
		float[] vertices = new float[sides * 2];
		for (int i = 0; i < sides * 2; i += 2) {
			float angleRad = (i / 2) * 360f / sides * (float) Math.PI / 180f;
			vertices[i] = x + size * (float) Math.cos(angleRad);
			vertices[i + 1] = y + size * (float) Math.sin(angleRad);
		}
		return vertices;
	}
}

        运行效果如下。

2.5 绘制圆形

         MyGame.java

package com.zhyan8.game;

import com.badlogic.gdx.ApplicationAdapter;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.graphics.GL30;
import com.badlogic.gdx.graphics.glutils.ShapeRenderer;

public class MyGame extends ApplicationAdapter {
	private ShapeRenderer mShapeRenderer;

	@Override
	public void create () {
		mShapeRenderer = new ShapeRenderer();
	}

	@Override
	public void render () {
		Gdx.gl.glClearColor(0.455f, 0.725f, 1.0f, 1.0f);
		Gdx.gl.glClear(GL30.GL_COLOR_BUFFER_BIT);
		shapeRenderer.begin(ShapeRenderer.ShapeType.Line); // ShapeType取值: Point、Line、Filled
		mShapeRenderer.setColor(1, 0, 0, 1); // 设置图形颜色
		mShapeRenderer.circle(200, 250, 100); // 绘制圆形
		mShapeRenderer.end();

		mShapeRenderer.begin(ShapeRenderer.ShapeType.Filled); // ShapeType取值: Point、Line、Filled
		mShapeRenderer.setColor(0, 1, 0, 1); // 设置图形颜色
		mShapeRenderer.circle(450, 250, 100); // 绘制圆形
		mShapeRenderer.end();
	}

	@Override
	public void dispose () {
		mShapeRenderer.dispose();
	}
}

        运行效果如下。

2.6 绘制椭圆

         MyGame.java

package com.zhyan8.game;

import com.badlogic.gdx.ApplicationAdapter;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.graphics.GL30;
import com.badlogic.gdx.graphics.glutils.ShapeRenderer;

public class MyGame extends ApplicationAdapter {
	private ShapeRenderer mShapeRenderer;

	@Override
	public void create () {
		mShapeRenderer = new ShapeRenderer();
	}

	@Override
	public void render () {
		Gdx.gl.glClearColor(0.455f, 0.725f, 1.0f, 1.0f);
		Gdx.gl.glClear(GL30.GL_COLOR_BUFFER_BIT);
		mShapeRenderer.begin(ShapeRenderer.ShapeType.Line); // ShapeType取值: Point、Line、Filled
		mShapeRenderer.setColor(1, 0, 0, 1); // 设置图形颜色
		mShapeRenderer.ellipse(100, 200, 200, 100); // 绘制椭圆形
		mShapeRenderer.end();

		mShapeRenderer.begin(ShapeRenderer.ShapeType.Filled); // ShapeType取值: Point、Line、Filled
		mShapeRenderer.setColor(0, 1, 0, 1); // 设置图形颜色
		mShapeRenderer.ellipse(400, 150, 100, 200); // 绘制椭圆形
		mShapeRenderer.end();
	}

	@Override
	public void dispose () {
		mShapeRenderer.dispose();
	}
}

        运行效果如下。

2.7 绘制弧形

         MyGame.java

package com.zhyan8.game;

import com.badlogic.gdx.ApplicationAdapter;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.graphics.GL30;
import com.badlogic.gdx.graphics.glutils.ShapeRenderer;

public class MyGame extends ApplicationAdapter {
	private ShapeRenderer mShapeRenderer;

	@Override
	public void create () {
		mShapeRenderer = new ShapeRenderer();
	}

	@Override
	public void render () {
		Gdx.gl.glClearColor(0.455f, 0.725f, 1.0f, 1.0f);
		Gdx.gl.glClear(GL30.GL_COLOR_BUFFER_BIT);
		mShapeRenderer.begin(ShapeRenderer.ShapeType.Line); // ShapeType取值: Point、Line、Filled
		mShapeRenderer.setColor(1, 0, 0, 1); // 设置图形颜色
		mShapeRenderer.arc(100, 200, 200, 0, 72); // 绘制扇形
		mShapeRenderer.end();

		mShapeRenderer.begin(ShapeRenderer.ShapeType.Filled); // ShapeType取值: Point、Line、Filled
		mShapeRenderer.setColor(0, 1, 0, 1); // 设置图形颜色
		mShapeRenderer.arc(450, 200, 100, 0, 300); // 绘制扇形
		mShapeRenderer.end();
	}

	@Override
	public void dispose () {
		mShapeRenderer.dispose();
	}
}

        运行效果如下。

2.8 绘制立方体

         MyGame.java

package com.zhyan8.game;

import com.badlogic.gdx.ApplicationAdapter;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.graphics.GL30;
import com.badlogic.gdx.graphics.PerspectiveCamera;
import com.badlogic.gdx.graphics.glutils.ShapeRenderer;

public class MyGame extends ApplicationAdapter {
	private ShapeRenderer mShapeRenderer;
	private PerspectiveCamera mCamera;
	private float mRotationAngle;

	@Override
	public void create() {
		mShapeRenderer = new ShapeRenderer();
		mCamera = new PerspectiveCamera(67, Gdx.graphics.getWidth(), Gdx.graphics.getHeight());
		mCamera.position.set(5f, 5f, 5f);
		mCamera.lookAt(0, 0, 0);
		mCamera.near = 1f;
		mCamera.far = 100f;
		mCamera.update();
		mShapeRenderer.setProjectionMatrix(mCamera.combined);
	}

	@Override
	public void render() {
		Gdx.gl.glClearColor(0.455f, 0.725f, 1.0f, 1.0f);
		Gdx.gl.glClear(GL30.GL_COLOR_BUFFER_BIT | GL30.GL_DEPTH_BUFFER_BIT);
		mShapeRenderer.begin(ShapeRenderer.ShapeType.Line);
		mShapeRenderer.setColor(1, 0, 0, 1);
		rotate();
		mShapeRenderer.box(-2, 0, 0, 2, 2, 2); // 绘制立方体
		mShapeRenderer.end();

		mShapeRenderer.begin(ShapeRenderer.ShapeType.Filled);
		mShapeRenderer.setColor(0, 1, 0, 1);
		rotate();
		mShapeRenderer.box(2, 0, 0, 2, 2, 2); // 绘制立方体
		mShapeRenderer.end();
	}

	@Override
	public void resize(int width, int height) {
		mCamera.viewportWidth = width;
		mCamera.viewportHeight = height;
		mCamera.update();
		mShapeRenderer.setProjectionMatrix(mCamera.combined);
	}

	@Override
	public void dispose() {
		mShapeRenderer.dispose();
	}

	private void rotate() {
		mRotationAngle += Gdx.graphics.getDeltaTime() * 45f; // 每秒转45度
		mShapeRenderer.identity(); // 重置transformation矩阵
		mShapeRenderer.rotate(2, 2, 2, mRotationAngle);
	}
}

        运行效果如下。

2.9 绘制圆锥

         MyGame.java

package com.zhyan8.game;

import com.badlogic.gdx.ApplicationAdapter;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.graphics.GL30;
import com.badlogic.gdx.graphics.PerspectiveCamera;
import com.badlogic.gdx.graphics.glutils.ShapeRenderer;

public class MyGame extends ApplicationAdapter {
	private ShapeRenderer mShapeRenderer;
	private PerspectiveCamera mCamera;
	private float mRotationAngle;

	@Override
	public void create() {
		mShapeRenderer = new ShapeRenderer();
		mCamera = new PerspectiveCamera(67, Gdx.graphics.getWidth(), Gdx.graphics.getHeight());
		mCamera.position.set(5f, 5f, 5f);
		mCamera.lookAt(0, 0, 0);
		mCamera.near = 1f;
		mCamera.far = 100f;
		mCamera.update();
		mShapeRenderer.setProjectionMatrix(mCamera.combined);
	}

	@Override
	public void render() {
		Gdx.gl.glClearColor(0.455f, 0.725f, 1.0f, 1.0f);
		Gdx.gl.glClear(GL30.GL_COLOR_BUFFER_BIT | GL30.GL_DEPTH_BUFFER_BIT);
		mShapeRenderer.begin(ShapeRenderer.ShapeType.Line);
		mShapeRenderer.setColor(1, 0, 0, 1);
		rotate();
		mShapeRenderer.cone(-2, 0, 0, 2, 2);
		mShapeRenderer.end();

		mShapeRenderer.begin(ShapeRenderer.ShapeType.Filled);
		mShapeRenderer.setColor(0, 1, 0, 1);
		rotate();
		mShapeRenderer.cone(2, 0, 0, 2, 2);
		mShapeRenderer.end();
	}

	@Override
	public void resize(int width, int height) {
		mCamera.viewportWidth = width;
		mCamera.viewportHeight = height;
		mCamera.update();
		mShapeRenderer.setProjectionMatrix(mCamera.combined);
	}

	@Override
	public void dispose() {
		mShapeRenderer.dispose();
	}

	private void rotate() {
		mRotationAngle += Gdx.graphics.getDeltaTime() * 45f; // 每秒转45度
		mShapeRenderer.identity(); // 重置transformation矩阵
		mShapeRenderer.rotate(2, 2, 2, mRotationAngle);
	}
}

        运行效果如下。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1227858.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

10_6 input输入子系统,流程解析

简单分层 应用层 内核层 --------------------------- input handler 数据处理层 driver/input/evdev.c1.和用户空间交互,实现fops2.不知道数据怎么得到的,但是可以把数据上传给用户--------------------------- input core层1.维护上面和下面的两个链表2.为上下两层提供接口--…

深度学习:欠拟合与过拟合

1 定义 1.1 模型欠拟合 AI模型的欠拟合&#xff08;Underfitting&#xff09;发生在模型未能充分学习训练数据中的模式和结构时&#xff0c;导致它在训练集和验证集上都表现不佳。欠拟合通常是由于模型太过简单&#xff0c;没有足够的能力捕捉到数据的复杂性和细节。 1.2 模型…

Python 自动化(十七)ORM操作

ORM-查询操作 查询简介 数据库的查询需要使用管理器对象 objects 进行 通过 自定义模型类.objects 管理器调用查询方法 查询方法 all()方法 概念与理解 用法&#xff1a;自定义模型类.objects.all()作用&#xff1a;查询自定义模型实体中所有的数据等同于 select * fr…

第八部分:JSP

目录 JSP概述 8.1&#xff1a;什么是JSP&#xff0c;它有什么作用&#xff1f; 8.2&#xff1a;JSP的本质是什么&#xff1f; 8.3&#xff1a;JSP的三种语法 8.3.1&#xff1a;jsp头部的page指令 8.3.2&#xff1a;jsp中的常用脚本 ①声明脚本&#xff08;极少使用&#xf…

【Python仿真】基于EKF的传感器融合定位

基于EKF的传感器融合定位&#xff08;Python仿真&#xff09; 简述1. 背景介绍1.1. EKF扩展卡尔曼滤波1.1.1.概念1.1.2. 扩展卡尔曼滤波的主要步骤如下&#xff1a;1.1.3. 优、缺点 1.2. 航位推算1.3. 目前航位算法的使用通常与卡尔曼滤波相结合使用2. 分段代码 2.1. 导入需要的…

【Go入门】 Go如何使得Web工作

【Go入门】 Go如何使得Web工作 前面小节介绍了如何通过Go搭建一个Web服务&#xff0c;我们可以看到简单应用一个net/http包就方便的搭建起来了。那么Go在底层到底是怎么做的呢&#xff1f;万变不离其宗&#xff0c;Go的Web服务工作也离不开我们第一小节介绍的Web工作方式。 w…

Java --- JVM之垃圾回收相关算法

目录 一、垃圾标记算法 1.1、垃圾标记阶段&#xff1a;对象存活判断 1.2、引用计数算法 1.3、可达性分析算法 1.4、GC Roots 二、对象的finalization机制 2.1、生存还是死亡&#xff1f; 三、查看GC Roots 3.1、使用MAT查看 四、使用JProfiler分析OOM 五、清除阶段算…

系列五、怎么查看默认的垃圾收集器是哪个?

一、怎么查看默认的垃圾收集器是哪个 java -XX:PrintCommandLineFlags -version

SpringBoot项目连接linux服务器数据库两种解决方法(linux直接开放端口访问本机通过SSH协议访问,以mysql为例)

最近找个springboot脚手架重新熟悉一下springboot相关框架的东西&#xff0c;结果发现好像项目还不能直接像数据库GUI工具一样填几个SSH参数就可以了&#xff0c;于是就给他再整一下看看如何解决 linux开放3306&#xff08;可修改&#xff09;端口直接访问 此方法较为方便&am…

【数据结构&C++】二叉平衡搜索树-AVL树(25)

前言 大家好吖&#xff0c;欢迎来到 YY 滴C系列 &#xff0c;热烈欢迎&#xff01; 本章主要内容面向接触过C的老铁 主要内容含&#xff1a; 欢迎订阅 YY滴C专栏&#xff01;更多干货持续更新&#xff01;以下是传送门&#xff01; 目录 一.AVL树的概念二.AVL树节点的定义(代码…

【嵌入式 – GD32开发实战指南(ARM版本)】第2部分 外设篇 - 第3章 温度传感器DS18B20

1 理论分析 1.1 DS18B20概述 DS18B20 是 DALLAS 最新单线数字温度传感器,新的"一线器件"体积更小、适用电压更宽、更经济。Dallas 半导体公司的数字化温度传感器 DS1820 是世界上第一片支持 "一线总线"接口的温度传感器。 DS18B20采用的单总线协议,也…

23.11.19日总结

经过昨天的中期答辩&#xff0c;其实可以看出来项目进度太慢了&#xff0c;现在是第十周&#xff0c;预计第十四周是终级答辩&#xff0c;在这段时间要把项目写完。 前端要加上一个未登录的拦截器&#xff0c;后端加上全局的异常处理。对于饿了么项目的商品建表&#xff0c;之前…

mybatis使用xml形式配置

以这个注解形式的查询代码为例 Select("select * from emp where name like concat(%,#{name},%) and gender #{gender} and entrydate between #{begin} and #{end} order by update_time desc ")public List<Emp> list(String name, Short gender, LocalDat…

SDUT OJ《算法分析与设计》搜索算法

A - 子集和问题 Description 子集和问题的一个实例为〈S,t〉。其中&#xff0c;S{ x1 &#xff0c; x2 &#xff0c;…&#xff0c;xn }是一个正整数的集合&#xff0c;c是一个正整数。子集和问题判定是否存在S的一个子集S1&#xff0c;使得&#xff1a; 。 试设计一个解子…

【Web】Ctfshow SSTI刷题记录1

目录 ①web361 362-无过滤 ②web363-过滤单双引号 ③web364-过滤单双引号和args ④web365-过滤中括号[]、单双引号、args ⑤web366-过滤单双引号、args、中括号[]、下划线 ⑦web367-过滤单双引号、args、中括号[]、下划线、os ⑧web368-过滤单双引号、args、中括号[]、下…

【Go入门】 Go搭建一个Web服务器

【Go入门】 Go搭建一个Web服务器 前面小节已经介绍了Web是基于http协议的一个服务&#xff0c;Go语言里面提供了一个完善的net/http包&#xff0c;通过http包可以很方便的搭建起来一个可以运行的Web服务。同时使用这个包能很简单地对Web的路由&#xff0c;静态文件&#xff0c…

卷积神经网络(VGG-16)海贼王人物识别

文章目录 前期工作1. 设置GPU&#xff08;如果使用的是CPU可以忽略这步&#xff09;我的环境&#xff1a; 2. 导入数据3. 查看数据 二、数据预处理1. 加载数据2. 可视化数据3. 再次检查数据4. 配置数据集5. 归一化 三、构建VGG-16网络1. 官方模型&#xff08;已打包好&#xff…

【win32_000】视频截图

PPT 编译器不会自己添加unicode定义 v 函数 WinMain int __clrcall WinMain([in] HINSTANCE hInstance ,//应用程序的当前实例的句柄。[in, optional] HINSTANCE hPrevInstance ,//应用程序上一个实例的句柄。 此参数始终为 NULL。[in] …

文心一言 VS 讯飞星火 VS chatgpt (138)-- 算法导论11.4 2题

二、用go语言&#xff0c;试写出HASH-DELETE 的伪代码;修改 HASH-INSERT&#xff0c;使之能处理特殊值DELETED。 文心一言&#xff1a; 首先&#xff0c;让我们定义一个基本的哈希表数据结构。这个结构将包括一个存储键值对的哈希表和一个存储已删除键值对的队列。我们可以用…

mac控制台命令小技巧

shigen日更文章的博客写手&#xff0c;擅长Java、python、vue、shell等编程语言和各种应用程序、脚本的开发。记录成长&#xff0c;分享认知&#xff0c;留住感动。 hello伙伴们&#xff0c;作为忠实的mac骨灰级别的粉丝&#xff0c;它真的给我带来了很多效率上的提升。那作为接…