自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(73)
  • 收藏
  • 关注

原创 games101作业6

【代码】games101作业6。

2023-05-31 17:56:19 832 1

原创 games101作业5

如果你在自己电脑上运行发现如下错误说明你的mingw是64位的,而作业需要的是32位的环境,最后我有配置了个虚拟机的环境才运行出来。如果你有这个错误换个32位的环境就好了。顶点,orig 是光线的起点,dir 是光线单位化的方向向量。tnear, u, v 是你需。线,然后调用函数 castRay() 来得到颜色,最后将颜色存储在帧缓冲区的相。要使用我们课上推导的 Moller-Trumbore 算法来更新的参数。(): v0, v1, v2 是三角形的三个。():这里你需要为每个像素生成一条对应的光。

2023-05-29 17:14:33 764

原创 games101作业4

【代码】games101作业4。

2023-05-23 18:00:18 143

原创 games101作业3

后两个函数emmmm不太懂,代码如下。

2023-05-21 10:47:40 590

原创 games101作业2

在这之前你需要把上次作业mian()函数中get_model_matrix(),get_projection_matrix()这两个函数中的代码复制粘贴过来。这次的作业是让我们栅格化三角形,就是让我们对三角形进行着色处理。中的两个函数,如下图。

2023-05-14 10:34:26 121

原创 games101作业1

作业1的大致要求就是让我们实现如下两个函数,一个是返回在三维空间中绕着Z轴旋转的矩阵,另一个是返回投影矩阵。创建透视投影矩阵的过程是将透视变换为正交,在进行正交投影即可。在这里需要注意的是透视变为正交之后,l 和 r、t 和 b是关于原点对称的,所以公式中的 l + r = 0,t + b = 0,相当于沿着 Z 轴平移。首先来实现get_model_matrix函数,在这个函数里只需要写出绕着Z轴旋转的旋转矩阵就行,下图是物体绕着X,Y,Z轴旋转的旋转矩阵公式。表示相机与近平面的距离,

2023-05-09 18:11:54 473

原创 games101作业0

首先进行作业之前需要完成环境的配置,我使用的是vscode进行编写,具体的配置可以参考。

2023-05-08 17:16:03 170

原创 2023浙江工业大学计算机考研经验贴

2023考研就算是告一段落了,写下这篇博客记录下自己的备考经历。先说一下自己的基本情况,我是一名二战选手,本科是河南的一所二本院校,不怕大家笑话,我一战考的也是浙工大,报考的方向是计专分数是337分,但是22年计专分数线是348分,无奈之下选择了二战。总结了自己一战失败的原因就是高估了自己的数学和专业课,低估了政治和英语的重要性。而且一战的时候自己学习也不是特别认真,7月份的时候数学刚开始线代,英语单词也没有背多少…当分数出来的时候再结合着群里大家伙的成绩就知道自己今年肯定是凉凉了。

2023-04-22 17:35:52 1917 16

原创 PTA乙级题目1030 完美数列

给定一个正整数数列,和正整数 p,设这个数列中的最大值是 M,最小值是 m,如果 M≤mp,则称这个数列是完美数列。现在给定参数 p 和一些正整数,请你从中选择尽可能多的数构成一个完美数列。输入格式:输入第一行给出两个正整数 N 和 p,其中 N(≤105)是输入的正整数的个数,p(≤109)是给定的参数。第二行给出 N 个正整数,每个数不超过 109。输出格式:在一行中输出最多可以选择多少个数可以用它们组成一个完美数列。输入样例:10 82 3 20 4 5 1 6 7 8 9

2022-01-04 12:02:20 141

原创 第十二届蓝桥杯大赛软件赛省赛 C/C++ 大学 B 组 填空题

256*1024*1024/4 = 67,108,864答案 3181/*模拟一下结果就出来了*/#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>using namespace std;int a[10];int main(){ for(int i=0;i<10;i++) a[i] = 2021; int res =.

2021-04-20 22:30:47 7234 14

原创 ACWing每日一题---126. 最大的和

原题链接给定一个包含整数的二维矩阵,子矩形是位于整个阵列内的任何大小为1 * 1或更大的连续子阵列。矩形的总和是该矩形中所有元素的总和。在这个问题中,具有最大和的子矩形被称为最大子矩形。例如,下列数组:0 -2 -7 09 2 -6 2-4 1 -4 1-1 8 0 -2其最大子矩形为:9 2-4 1-1 8它拥有最大和15。输入格式输入中将包含一个N*N的整数数组。第一行只输入一个整数N,表示方形二维数组的大小。从第二行开始,输入由空格和换行符隔开的N2个整数,它们即为二

2021-02-01 22:59:52 198

原创 ACWing寒假每日一题---703. 数独检查

原题链接数独是一种流行的单人游戏。目标是用数字填充9x9矩阵,使每列,每行和所有9个非重叠的3x3子矩阵包含从1到9的所有数字。每个9x9矩阵在游戏开始时都会有部分数字已经给出,通常有一个独特的解决方案。给定完成的N2∗N2数独矩阵,你的任务是确定它是否是有效的解决方案。有效的解决方案必须满足以下条件:每行包含从1到N2的每个数字,每个数字一次。每列包含从1到N2的每个数字,每个数字一次。将N2∗N2矩阵划分为N2个非重叠N∗N子矩阵。 每个子矩阵包含从1到N2的每个数字,每个数字一次。

2021-02-01 22:45:22 230

原创 mysql查询一个属性中出现最多的那个属性值

首先简单建立一张测试表create table test(id int);插入以下数据首先我们先按照该属性进行分组,查看每个属性出现的次数。把这个结果当成一张新的表,后面要用到select id,count(*) cnt from test GROUP BY id;我们可以从上面查询结果中把最大的cnt取出来然后进行保存,回过头再用这张表进行筛选出cnt等于这个值的字段就是我们要的结果select t.id,t.cntfrom (select id,count(*) cnt from

2020-12-23 15:56:18 1025

原创 java网络编程---测试本网段可用的ip数量

首先我们需要做的就是确定自己主机的ip地址,然后得出所在的网段,最后就是ping该网段的所有ip地址。获取本机的ip地址和网段InetAddress host = InetAddress.getLocalHost();String ip = host.getHostAddress();System.out.println("本机的ip : " + ip);System.out.println("网段是:" + ip.substring(0,ip.lastIndexOf('.')));得出网段之

2020-12-21 09:25:28 236

原创 javaweb简单实现购物车的功能

功能简述本例采用jsp+servlet+mysql+jdbc+c3p0+ajax简单实现一个购物车的功能。首先会进入购物页面,每个商品

2020-12-11 14:14:30 22203 35

原创 利用session获取网站在线人数

什么是SessionSession对应的中文翻译是会话。会话指的是从用户打开浏览器访问一个网站开始,无论在这个网站中访问了多少页面,点击了多少链接,都属于同一个会话。 直到该用户关闭浏览器为止,都属于同一个会话。HTTP协议是短链接的,所以无法在服务端根据建立了多少连接来统计当前有多少人在线。 不过可以通过统计session有多少来估计在线人数。一旦一个用户访问服务器,就会创建一个session. 如果该用户持续访问,那么该session会持续有效。如果经历了30分钟,该用户也没有做任何操作,就表

2020-12-08 23:08:32 1640 2

原创 JavaWeb新手入门项目---图书管理系统

图书管理系统github项目地址:链接地址基于servlet+jsp+mysql+c3p0+jdbc+前端三大件的图书管理系统(只适合新手练习,有些地方还是不够严谨)简介一个适合JavaWeb新手的项目,没有使用任何框架,但是尽可能利用了MVC模式。实现用户对数据库中的图书进行借阅的功能,管理员能够对用户借书的这个请求作出相应的回答。涉及到的知识点html/css/js/jq+servlet+jsp+mysql数据库连接主要使用了jdbc+c3p0,你可以在c3p0.xml中配置你本地的连

2020-12-07 22:57:07 6167 18

原创 使用hexo框架搭建属于自己的博客(win10)

个人博客,听起来有没有很炫酷。今天就记录一下我在win10系统下搭建个人博客的全过程,成功之后还是很开心的,毕竟我们是具有极客精神的程序员~~参考视频地址准备过程:首先你得下载node.js以及gitnode.js下载地址直接下载然后安装就行了检查版本由于国内镜像源速度比较慢,一般先安装cnpm淘宝源,复制下列命令粘到cmd执行npm install -g cnpm --registry=https://registry.npm.taobao.org安装镜像后,输入下列指令,查看是否

2020-12-04 17:51:02 186 3

原创 javaWeb实现文件上传和下载功能

功能介绍在网页上实现文件的下载与上传功能。上传的文件保存在(/file)目录下,记住要在这里建立file目录,程序中也有建立目录的功能。这里面用到了两个jar包功能实现index.jap:主要是展示出来上传和下载功能。其中点击下载的时候会跳到另一个页面展示出来当前服务器所能下载的文件。<%@ page contentType="text/html;charset=UTF-8" language="java" %><html> <head> &lt

2020-11-25 17:44:13 1382 1

原创 idea2020.2创建javaWeb项目并且配置Tomcat

首先直接创建最基本的java项目然后在项目上右键单击选择添加框架支持选择Web Application,点击确定右上角点击添加配置点击左上角加号找到TomcatServer 本地然后出来这样的画面,点击配置选择自己下载的Tomcat文件路径最后点击部署,添加工件就会把自己的项目添加进去打开项目里面的index.jsp能够成功运行在浏览器上就算是配置成功了...

2020-11-08 15:37:23 338

原创 记忆化搜索模板+poj1163例题

先说结论:什么是记忆化搜索?1.不依赖任何外部变量。2.答案一返回值的形式存在,而不能以参数的形式存在。3.对于同一组参数,dfs的返回值是相同的,因为第一次都已经记录过记忆化算法在求解的时候还是按着自顶向下的顺序,但是每求解一个状态,就将它的解保存下来,以后再次遇到这个状态的时候,就不必重新求解了,直接调用这个状态。该算法使用范围:当一个题目根据具体判断可能会出现重复的答案时候,或是不加以优化的暴力搜索会超时的时候,就可以考虑使用记忆化搜索。其实记忆化搜索应该放在动态规划板块,因为其思想和动

2020-11-07 18:15:40 403

原创 蓝桥杯历届试题 兰顿蚂蚁(dfs)

问题描述兰顿蚂蚁,是于1986年,由克里斯·兰顿提出来的,属于细胞自动机的一种。平面上的正方形格子被填上黑色或白色。在其中一格正方形内有一只“蚂蚁”。  蚂蚁的头部朝向为:上下左右其中一方。蚂蚁的移动规则十分简单:  若蚂蚁在黑格,右转90度,将该格改为白格,并向前移一格;  若蚂蚁在白格,左转90度,将该格改为黑格,并向前移一格。规则虽然简单,蚂蚁的行为却十分复杂。刚刚开始时留下的路线都会有接近对称,像是会重复,但不论起始状态如何,蚂蚁经过漫长的混乱活动后,会开辟出一条规则的“高速公路”。

2020-11-07 15:14:59 129

原创 蓝桥杯历届试题 小朋友排队(树状数组,逆序对)

问题描述  n 个小朋友站成一排。现在要把他们按身高从低到高的顺序排列,但是每次只能交换位置相邻的两个小朋友。每个小朋友都有一个不高兴的程度。开始的时候,所有小朋友的不高兴程度都是0。如果某个小朋友第一次被要求交换,则他的不高兴程度增加1,如果第二次要求他交换,则他的不高兴程度增加2(即不高兴程度为3),依次类推。当要求某个小朋友第k次交换时,他的不高兴程度增加k。请问,要让所有小朋友按从低到高排队,他们的不高兴程度之和最小是多少。如果有两个小朋友身高一样,则他们谁站在谁前面是没有关系的。输入格

2020-11-07 15:10:46 552

原创 jQuery实现网页表的添加和删除功能

功能介绍使用jQuery实现添加和删除记录的功能;功能实现添加功能:在实现添加功能我们要找到添加的位置,也就是HTML语句添加的位置。很显然我们的HTML语句是要添加到表格中去,从而形成新的一行,再添加这个记录的同时我们还要注意一个细节,就是要把这个记录的删除功能也要加上。当时这个问题我想了想实现这个删除功能肯定是要在标签中进行实现,那么接下来就是要找到添加语句的a标签,这个我们可以借助添加语句用到的jQuery对象来实现,具体都在代码里面了;接下来就是删除功能的添加,在页面加载完成我们就给当前记录绑

2020-11-07 09:49:09 483

原创 synchronized用法总结(4个案例进行说明)

由于同一进程的多个线程共享同一片存储空间,在带来方便的同时,也带来了访问冲突这个严重的问题。Java语言提供了专门机制以解决这种冲突,有效避免了同一个数据对象被多个线程同时访问。需要明确的几个问题:1、synchronized关键字可以作为函数的修饰符,也可作为函数内的语句,也就是平时说的同步方法和同步语句块。如果 再细的分类,synchronized可作用于instance变量、object reference(对象引用)、static函数和class literals(类名称字面常量)身上。2、无

2020-10-29 17:09:57 2459

原创 instanceof用法总结

**instanceof 是 Java 的保留关键字。它的作用是测试它左边的对象是否是它右边的类的实例,返回 boolean 的数据类型。**

2020-10-25 11:25:51 724 1

原创 java中的访问控制权限

java中的访问控制权限有public,protected,private,默认。其中成员可以是public,protected,默认,private进行修饰;方法可以是public,protected,默认,private进修饰;类可以是public,默认进行修饰;接口可以是public,默认进行修饰;他们的访问控制权限如下:访问控制修饰符 本类 同包 子类 任意位置public 可以 可以 可以 可以protected 可以 可以 可以 不可以默认

2020-10-25 10:31:37 114

原创 完整的JDBC连接MySQL

首先自己封装了一个JDBCUtil类,里面包括加载驱动、获取连接、以及关闭资源其中加载驱动写到了静态代码块里面,这样不同的程序使用这个类的时候能保证静态代码块只执行一次。构造函数设置成私有的,其他方法都设置成为静态的,使用类名.方法去调用,在调用的时候静态代码块就会执行。package com.cj.jdbc.Util;import java.sql.*;import java.util.ResourceBundle;public class JDBCUtil { //构造方法设置成私

2020-10-25 09:40:49 199

原创 idea2020使用JDBC连接mysql数据库

首先打开模块化设置在这里添加相应的.jar包然后会得到这样的一个结果接着就可以进行测试了,在测试样例中我结合了配置文件一起使用的配置文件.propertiesimport java.sql.*;import java.util.ResourceBundle;public class selectSalgrade { public static void main(String[] args) { ResourceBundle bundle = Resource

2020-10-24 11:29:38 991

原创 MySQL中连接查询之外连接

外连接:两张表进行连接,有主副之分,而且主要查询主表中的数据匹配得上就输出,匹配不上副表就自动模拟出NULL与之匹配。其中主表的数据全部无条件的查询出来。外连接的分类:左外连接(左连接):表示左边这张表是主表。右外连接(右连接):表示右边这张表是主表。左连接和右连接可以自动转换。过程中会用到的两张表:1、员工表2、部门表(以下都用左连接)先给个样例说明一下内连接和外连接小小区别:内连接:外连接:可以看出在查询员工领导时候,内连接有13条记录,外连接有14条记录。从而就说明了,

2020-10-21 21:45:44 279

原创 SQL中对于select嵌套的使用(where和from)

一共使用到的三张经典表:员工表:部门表:薪资等级表:创建这三张表用到的SQL脚本https://pan.baidu.com/s/1P0ky0QL2JTQWHBI81AE_3g提取码:5ga71、(where嵌套select)先看员工表:如果我想查询一下这些员工中薪资高于平均薪资的员工姓名以及工作岗位的话,我们可能会想到这样写:select ename,job from emp where sal > avg(sal);但是这样是错误的,因为group by是在whe

2020-10-21 17:40:59 9604 1

原创 MySQL中连接查询之内连接

内连接方式通常包括等值连接,非等值连接,自连接。内连接的特点是连接之后的两个表等级相同,没有主副之分,匹配得到就输出,匹配不到就跳过。先来看三张表:员工表部门表薪资等级表1、等值连接在连接条件中使用等于号(=)运算符比较被连接列的列值,其查询结果中列出被连接表中的所有列,包括其中的重复属性。问题:我想查看员工的部门名称和工作地点,这时候我们就可以使用等值连接进行查询selecte.ename,d.dname,d.locfromemp ejoindept done.dept

2020-10-21 17:20:29 170

原创 group by注意事项

group by函数是SQL语句中的分组函数,它可以根据group by后面的字段进行分组,如果没有出现group by函数的话默认这个表就是一个组。这是一张员工表,如果我们想要查询每个工作岗位的平均薪资的话,SQL语句可以这样写:selectjob,avg(sal)fromempgroup by job;就会出现我们想要的结果但是在使用group by有一些事项需要我们注意一下:1、group by函数通常联合分组函数(sum,avg,max,min,count)进行使用,而且分组

2020-10-21 16:55:57 4901 5

原创 MySQL中的数据类型

int 整数型bigint 长整型float 浮点型double 双精度型char 定长字符型(java中的String,最多255字符)varchar 变长字符型(java中的StringBuilder/StringBuffer,最多255字符)date 日期型(java中的java.sal.date)BLOB 二进制大对象(存放图片,视频等流媒体信息)CLOB 字符大对象(存储大文本,超过255字符可以用这个)注意:varchar相当于是在编译时动态分配给对象字符空间,但是不能超过定义

2020-10-20 21:57:46 90

原创 生产者消费者模式(理解java中wait,notify的使用)

wait和notify的区别:jdk官方文档中这样解释:wait():public final void wait() throws InterruptedException在其他线程调用此对象的 notify() 方法或 notifyAll() 方法前,导致当前线程等待。换句话说,此方法的行为就好像它仅执行 wait(0) 调用一样。当前线程必须拥有此对象监视器。该线程发布对此监视器的所有权并等待,直到其他线程通过调用 notify 方法,或 notifyAll 方法通知在此对象的监视器上等待的

2020-10-09 13:09:46 99

原创 终止线程的三种方式

停止一个线程通常意味着在线程处理任务完成之前停掉正在做的操作,也就是放弃当前的操作。在 Java 中有以下 3 种方法可以终止正在运行的线程:使用退出标志,使线程正常退出,也就是当 run() 方法完成后线程中止。使用 stop() 方法强行终止线程,但是不推荐使用这个方法,该方法已被弃用。使用 interrupt 方法中断线程。使用标志位终止线程在 run() 方法执行完毕后,该线程就终止了。但是在某些特殊的情况下,run() 方法会被一直执行;比如在服务端程序中可能会使用 while(tr

2020-10-09 09:59:20 2003

原创 基于libevent库的TCP C/S模型

服务端代码:/************************************************************************* > File Name: server.c > Author: chencj > Mail: 1378755306@qq.com > Created Time: 2020年08月17日 星期一 17时50分07秒 *************************************************

2020-08-18 16:54:58 235

原创 linux本地套接字--tcp,udp实现

本地套接字顾名思义就是用于本地通信的套接字,虽然网络套接字也能用于本地通信(通过本地回环测试127.0.0.1),但是还是需要绑定IP地址和端口号,这就没有本地套接字通信那么简便了。但是需要注意的事在客户端需要建立两个地址结构, 一个是定义自己的,一个是标注目的服务端的,而且是绝对路径,这样在服务端接收数据的时候就知道是哪个客户端伪文件传来的,不然的话打印不出来绝对路径。bind创建出来的文件就是伪文件(套接字文件),这个文件的大小是0,可以说就是一个棋子。/虽然在很多教材中经常把Unix本地套接字放在网

2020-08-15 16:49:30 527

原创 /*Linux下的线程池*/

线程池听名字很好理解,就是把多个线程放在一个池里面,然后做相应的操作。在线程池中 我们会再开始的时候创建一个最小线程数,然后往线程池里面添加或者销毁线程我们通过一个主导线程进行管理。对线程公共的资源我们引入了互斥锁进行制约,当线程池里面的任何一个线程访问该资源的时候都要进行加锁解锁操作,这样能有效的使得每个线程正确的获得该资源不会发生混乱。还有每个线程要做的任务,这里我们有一个任务队列配合着线程,有任务就交给空闲的线程进行处理。如果不引入线程池,而是来一个任务就创建一个线程的话这样的效率是很低的,CPU的资

2020-08-15 09:24:52 77

原创 Linux下的epoll反应堆

epoll是select/poll的增强,在Linux下经常应用于高并发服务程序,epoll对于那些有大量并发连接但是只有很少部分活跃的情况下是很有用的,因为活跃的连接在epoll_wait会返回一个数值,这个数值就是活跃连接的数量。如果返回0就说明没有客户端进行连接,反之就要依次处理这些客户端。epoll最高效的方式就是epoll ET模式 + 非阻塞 i/o,也就是epoll反应堆模型。关于epoll更详细的讲解戳这里epoll反应堆服务端代码:/************************

2020-08-14 15:04:37 198

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除