八个字最早的具有科目标课程号和学科名,一笔画是图论

澳门新葡8455最新网站 25

1. 游戏规则

「消灭星星」存在多个版本,不过它们的规则除了「关卡分值」有些出入外,其它的规则都是一样的。笔者介绍的版本的游戏规则整理如下:

1. 色砖分布

  • 10 x 10 的表格
  • 5种颜色 —— 红、绿、蓝,黄,紫
  • 每类色砖个数在指定区间内随机
  • 5类色砖在 10 x 10 表格中随机分布

2. 消除规则

两个或两个以上同色砖块相连通即是可被消除的砖块。

3. 分值规则

  • 消除总分值 = n * n * 5
  • 奖励总分值 = 2000 – n * n * 20

「n」表示砖块数量。上面是「总」分值的规则,还有「单」个砖块的分值规则:

  • 消除砖块得分值 = 10 * i + 5
  • 剩余砖块扣分值 = 40 * i + 20

「i」表示砖块的索引值(从 0
开始)。简单地说,单个砖块「得分值」和「扣分值」是一个等差数列。

4. 关卡分值

关卡分值 = 1000 + (level – 1) * 2000;「level」即当前关卡数。

5. 通关条件

  • 可消除色块不存在
  • 累计分值 >= 当前关卡分值

上面两个条件同时成立游戏才可以通关。

H5游戏开发:一笔画

by leeenx on 2017-11-02

一笔画是图论[科普](https://zh.wikipedia.org/wiki/%E5%9B%BE%E8%AE%BA)中一个著名的问题,它起源于柯尼斯堡七桥问题[科普](https://zh.wikipedia.org/wiki/%E6%9F%AF%E5%B0%BC%E6%96%AF%E5%A0%A1%E4%B8%83%E6%A1%A5%E9%97%AE%E9%A2%98)。数学家欧拉在他1736年发表的论文《柯尼斯堡的七桥》中不仅解决了七桥问题,也提出了一笔画定理,顺带解决了一笔画问题。用图论的术语来说,对于一个给定的连通图[科普](https://zh.wikipedia.org/wiki/%E8%BF%9E%E9%80%9A%E5%9B%BE)存在一条恰好包含所有线段并且没有重复的路径,这条路径就是「一笔画」。

寻找连通图这条路径的过程就是「一笔画」的游戏过程,如下:

澳门新葡8455最新网站 1

 2、找出选修课程号为C4的学生学号与姓名。

Advanced Reaction-Diffusion Models for Texture
Synthesis(A.
Sanderson, R. Kirby, C. Johnson, L. Yang)

2. MVC 设计模式

笔者这次又是使用了 MVC
模式来写「消灭星星」。星星「砖块」的数据结构与各种状态由 Model
实现,游戏的核心在 Model 中完成;View 映射 Model
的变化并做出对应的行为,它的任务主要是展示动画;用户与游戏的交互由
Control 完成。

从逻辑规划上看,Model 很重而View 与 Control
很轻,不过,从代码量上看,View 很重而 Model 与 Control 相对很轻。

使用「自动识图」的建议

尽管笔者在本地测试的时候可以把所有的「底图」识别出来,但是并不能保证其它开发者上传的图片能否被很好的识别出来。笔者建议,可以把「自动识图」做为一个单独的工具使用。

笔者写了一个「自动识图」的单独工具页面:
可以在这个页面生成对应的关卡配置。

20. 
  select count(distinct(Tname)) 

OpenNL: Open Numerical
Library(direct/iterative
sparse solvers, preconditioners, Least-Squares Conformal Maps (LSCM)
implementation)
(Authors)

3.2 消除砖块

「消除砖块」的规则很简单 —— 相邻相连通相同色即可以消除

澳门新葡8455最新网站 2
前两个组合符合「相邻相连通相同色即可以消除」,所以它们可以被消除;第三个组合虽然「相邻相同色」但是不「相连通」所以它不能被消除。

「消除砖块」的同时有一个重要的任务:生成砖块对应的分值。在「游戏规则」中,笔者已经提供了对应的数学公式:「消除砖块得分值
= 10 * i + 5」。

「消除砖块」算法实现如下:

JavaScript

function clean(tile) { let count = 1; let sameTiles =
searchSameTiles(tile); if(sameTiles.length > 0) { deleteTile(tile);
while(true) { let nextSameTiles = []; sameTiles.forEach(tile => {
nextSameTiles.push(…searchSameTiles(tile)); makeScore(++count * 10 +
5); // 标记当前分值 deleteTile(tile); // 删除砖块 }); //
清除完成,跳出循环 if(nextSameTiles.length === 0) break; else {
sameTiles = nextSameTiles; } } } }

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
function clean(tile) {
let count = 1;
let sameTiles = searchSameTiles(tile);
if(sameTiles.length > 0) {
deleteTile(tile);
while(true) {
let nextSameTiles = [];
sameTiles.forEach(tile => {
nextSameTiles.push(…searchSameTiles(tile));
makeScore(++count * 10 + 5); // 标记当前分值
deleteTile(tile); // 删除砖块
});
// 清除完成,跳出循环
if(nextSameTiles.length === 0) break;
else {
sameTiles = nextSameTiles;
}
}
}
}

清除的算法使用「递归」逻辑上会清晰一些,不过「递归」在浏览器上容易「栈溢出」,所以笔者没有使用「递归」实现。

交互绘制

在画布上绘制路径,从视觉上说是「选择或连接连通图端点」的过程,这个过程需要解决2个问题:

  • 手指下是否有端点
  • 选中点到待选中点之间能否成线

收集连通图端点的坐标,再监听手指滑过的坐标可以知道「手指下是否有点」。以下伪代码是收集端点坐标:

JavaScript

// 端点坐标信息 let coords = []; lines.forEach(({x1, y1, x2, y2})
=> { // (x1, y1) 在 coords 数组不存在 if(!isExist(x1, y1))
coords.push([x1, y1]); // (x2, y2) 在 coords 数组不存在
if(!isExist(x2, y2)) coords.push([x2, y2]); });

1
2
3
4
5
6
7
8
// 端点坐标信息
let coords = [];
lines.forEach(({x1, y1, x2, y2}) => {
// (x1, y1) 在 coords 数组不存在
if(!isExist(x1, y1)) coords.push([x1, y1]);
// (x2, y2) 在 coords 数组不存在
if(!isExist(x2, y2)) coords.push([x2, y2]);
});

以下伪代码是监听手指滑动:

JavaScript

easel.addEventListener(“touchmove”, e => { let x0 =
e.targetTouches[0].pageX, y0 = e.targetTouches[0].pageY; // 端点半径
—— 取连通图端点半径的2倍,提升移动端体验 let r = radius * 2;
for(let [x, y] of coords){ if(Math.sqrt(Math.pow(x – x0, 2) +
Math.pow(y – y0), 2) <= r){ // 手指下有端点,判断能否连线
if(canConnect(x, y)) { // todo } break; } } })

1
2
3
4
5
6
7
8
9
10
11
12
13
14
easel.addEventListener("touchmove", e => {
let x0 = e.targetTouches[0].pageX, y0 = e.targetTouches[0].pageY;
// 端点半径 —— 取连通图端点半径的2倍,提升移动端体验
let r = radius * 2;
for(let [x, y] of coords){
if(Math.sqrt(Math.pow(x – x0, 2) + Math.pow(y – y0), 2) <= r){
// 手指下有端点,判断能否连线
if(canConnect(x, y)) {
// todo
}
break;
}
}
})

在未绘制任何线段或端点之前,手指滑过的任意端点都会被视作「一笔画」的起始点;在绘制了线段(或有选中点)后,手指滑过的端点能否与选中点串连成线段需要依据现有条件进行判断。

澳门新葡8455最新网站 3

上图,点A与点B可连接成线段,而点A与点C不能连接。笔者把「可以与指定端点连接成线段的端点称作有效连接点」。连通图端点的有效连接点从连通图的线段中提取:

JavaScript

coords.forEach(coord => { // 有效连接点(坐标)挂载在端点坐标下
coord.validCoords = []; lines.forEach(({x1, y1, x2, y2}) => { //
坐标是当前线段的起点 if(coord.x === x1 && coord.y === y1) {
coord.validCoords.push([x2, y2]); } // 坐标是当前线段的终点 else
if(coord.x === x2 && coord.y === y2) { coord.validCoords.push([x1,
y1]); } }) })

1
2
3
4
5
6
7
8
9
10
11
12
13
14
coords.forEach(coord => {
// 有效连接点(坐标)挂载在端点坐标下
coord.validCoords = [];
lines.forEach(({x1, y1, x2, y2}) => {
// 坐标是当前线段的起点
if(coord.x === x1 && coord.y === y1) {
coord.validCoords.push([x2, y2]);
}
// 坐标是当前线段的终点
else if(coord.x === x2 && coord.y === y2) {
coord.validCoords.push([x1, y1]);
}
})
})

But…有效连接点只能判断两个点是否为底图的线段,这只是一个静态的参考,在实际的「交互绘制」中,会遇到以下情况:

澳门新葡8455最新网站 4
如上图,AB已串连成线段,当前选中点B的有效连接点是 A 与 C。AB
已经连接成线,如果 BA 也串连成线段,那么线段就重复了,所以此时 BA
不能成线,只有 AC 才能成线。

对选中点而言,它的有效连接点有两种:

  • 与选中点「成线的有效连接点」
  • 与选中点「未成线的有效连接点」

其中「未成线的有效连接点」才能参与「交互绘制」,并且它是动态的。

澳门新葡8455最新网站 5

回头本节内容开头提的两个问题「手指下是否有端点」 与
「选中点到待选中点之间能否成线」,其实可合并为一个问题:手指下是否存在「未成线的有效连接点」。只须把监听手指滑动遍历的数组由连通图所有的端点坐标
coords 替换为当前选中点的「未成线的有效连接点」即可。

至此「一笔画」的主要功能已经实现。可以抢先体验一下:

澳门新葡8455最新网站 6

               (Select sno from sc where
grade<60 and cno in

ASIFT: A New Framework for Fully Affine Invariant
Comparison(J.-M.
Morel, G. Yu)

H5游戏开发:消灭星星

2018/01/25 · HTML5 ·
游戏

原文出处: 凹凸实验室   

「消灭星星」是一款很经典的「消除类游戏」,它的玩法很简单:消除相连通的同色砖块。

澳门新葡8455最新网站 7

游戏的实现

「一笔画」的实现不复杂,笔者把实现过程分成两步:

  1. 底图绘制
  2. 交互绘制

「底图绘制」把连通图以「点线」的形式显示在画布上,是游戏最容易实现的部分;「交互绘制」是用户绘制解题路径的过程,这个过程会主要是处理点与点动态成线的逻辑。

 

Symmetry Descriptors and 3D Shape
Matching(M.
Kazhdan)

3. Model

10 x 10 的表格用长度为 100 的数组可完美映射游戏的星星「砖块」。

[ R, R, G, G, B, B, Y, Y, P, P, R, R, G, G, B, B, Y, Y, P, P, R, R, G,
G, B, B, Y, Y, P, P, R, R, G, G, B, B, Y, Y, P, P, R, R, G, G, B, B, Y,
Y, P, P, R, R, G, G, B, B, Y, Y, P, P, R, R, G, G, B, B, Y, Y, P, P, R,
R, G, G, B, B, Y, Y, P, P, R, R, G, G, B, B, Y, Y, P, P, R, R, G, G, B,
B, Y, Y, P, P ]

1
2
3
4
5
6
7
8
9
10
11
12
[
R, R, G, G, B, B, Y, Y, P, P,
R, R, G, G, B, B, Y, Y, P, P,
R, R, G, G, B, B, Y, Y, P, P,
R, R, G, G, B, B, Y, Y, P, P,
R, R, G, G, B, B, Y, Y, P, P,
R, R, G, G, B, B, Y, Y, P, P,
R, R, G, G, B, B, Y, Y, P, P,
R, R, G, G, B, B, Y, Y, P, P,
R, R, G, G, B, B, Y, Y, P, P,
R, R, G, G, B, B, Y, Y, P, P
]

R – 红色,G – 绿色,B – 蓝色,Y – 黄色,P – 紫色。Model
的核心任务是以下四个:

  • 生成砖墙
  • 消除砖块 (生成砖块分值)
  • 夯实砖墙
  • 清除残砖 (生成奖励分值)

结语

下面是本文介绍的「一笔画」的线上
DEMO 的二维码:

澳门新葡8455最新网站 6

游戏的源码托管在:
其中游戏实现的主体代码在:
自动识图的代码在:

感谢耐心阅读完本文章的读者。本文仅代表笔者的个人观点,如有不妥之处请不吝赐教。

感谢您的阅读,本文由 凹凸实验室
版权所有。如若转载,请注明出处:凹凸实验室()

1 赞 1 收藏
评论

澳门新葡8455最新网站 9

    四、填空 (每空1分,共20分)

Octree Textures on the
GPU(S.
Lefebvre)

4. View

View 主要的功能有两个:

  • UI 管理
  • 映射 Model 的变化(动画)

UI
管理主要是指「界面绘制」与「资源加载管理」,这两项功能比较常见本文就直接略过了。View
的重头戏是「映射 Model
的变化」并完成对应的动画。动画是复杂的,而映射的原理是简单的,如下伪代码:

JavaScript

update({originIndex, index, clr, removed, score}) { // 还没有
originIndex 或没有色值,直接不处理 if(originIndex === undefined || clr
=== undefined) return ; let tile = this.tiles[originIndex]; // tile
存在,判断颜色是否一样 if(tile.clr !== clr) { this.updateTileClr(tile,
clr); } // 当前索引变化 —– 表示位置也有变化 if(tile.index !== index)
{ this.updateTileIndex(tile, index); } // 设置分数 if(tile.score !==
score) { tile.score = score; } if(tile.removed !== removed) { //
移除或添加当前节点 true === removed ? this.bomb(tile) :
this.area.addChild(tile.sprite); tile.removed = removed; } }

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
update({originIndex, index, clr, removed, score}) {
// 还没有 originIndex 或没有色值,直接不处理
if(originIndex === undefined || clr === undefined) return ;
let tile = this.tiles[originIndex];
// tile 存在,判断颜色是否一样
if(tile.clr !== clr) {
this.updateTileClr(tile, clr);
}
// 当前索引变化 —– 表示位置也有变化
if(tile.index !== index) {
this.updateTileIndex(tile, index);
}
// 设置分数
if(tile.score !== score) {
tile.score = score;
}
if(tile.removed !== removed) {
// 移除或添加当前节点
true === removed ? this.bomb(tile) : this.area.addChild(tile.sprite);
tile.removed = removed;
}
}

Model 的砖块每次数据的更改都会通知到 View 的砖块,View
会根据对应的变化做对应的动作(动画)。

H5游戏开发:一笔画

2017/11/07 · HTML5 ·
游戏

原文出处: 凹凸实验室   

澳门新葡8455最新网站 10

100.                ,SUM(CASE WHEN C# = ‘003’ THEN score ELSE 0 END)/SUM(CASE C# WHEN ‘003’ THEN 1 ELSE 0 END) AS UML平均分 

Exact Evaluation of Catmull-Clark Subdivision Surfaces near B-Spline
Boundaries(D.
Lacewell, B. Burley)

参考资料

  • Knapsack problem
  • NP-completeness
  • popstar关卡是如何设计的?
  • 费雪耶兹乱序算法
  • 波动均分算法

    1 赞 收藏
    评论

澳门新葡8455最新网站 9

端点识别

理论上,通过采集的「色值表」可以直接把端点的坐标识别出来。笔者设计的「端点识别算法」分以下2步:

  1. 按像素扫描底图直到遇到「端点颜色」的像素,进入第二步
  2. 从底图上清除端点并记录它的坐标,返回继续第一步

伪代码如下:

JavaScript

for(let i = 0, len = data.length; i < len; i += 4) { let [r, g, b,
a] = [data[i], data[i + 1], data[i + 2], data[i + 3]]; //
当前像素颜色属于端点 if(isBelongVertex(r, g, b, a)) { // 在 data
中清空端点 vertex = clearVertex(i); // 记录端点信息
vertexes.push(vertext); } }

1
2
3
4
5
6
7
8
9
10
for(let i = 0, len = data.length; i < len; i += 4) {
let [r, g, b, a] = [data[i], data[i + 1], data[i + 2], data[i + 3]];
// 当前像素颜色属于端点
if(isBelongVertex(r, g, b, a)) {
// 在 data 中清空端点
vertex = clearVertex(i);
// 记录端点信息
vertexes.push(vertext);
}
}

But…
上面的算法只能跑无损图。笔者在使用了一张手机截屏做测试的时候发现,收集到的「色值表」长度为
5000+ !这直接导致端点和线段的色值无法直接获得。

经过分析,可以发现「色值表」里绝大多数色值都是相近的,也就是在原来的「采集色值表算法」的基础上添加一个近似颜色过滤即可以找出端点和线段的主色。伪代码实现如下:

JavaScript

let lineColor = vertexColor = {count: 0}; for(let clr of clrs) { //
与底色相近,跳过 if(isBelongBackground(clr)) continue; //
线段是数量第二多的颜色,端点是第三多的颜色 if(clr.count >
lineColor.count) { [vertexColor, lineColor] = [lineColor, clr] } }

1
2
3
4
5
6
7
8
9
let lineColor = vertexColor = {count: 0};
for(let clr of clrs) {
// 与底色相近,跳过
if(isBelongBackground(clr)) continue;
// 线段是数量第二多的颜色,端点是第三多的颜色
if(clr.count > lineColor.count) {
[vertexColor, lineColor] = [lineColor, clr]
}
}

取到端点的主色后,再跑一次「端点识别算法」后居识别出 203
个端点!这是为什么呢?

澳门新葡8455最新网站 12

上图是放大5倍后的底图局部,蓝色端点的周围和内部充斥着大量噪点(杂色块)。事实上在「端点识别」过程中,由于噪点的存在,把原本的端点被分解成十几个或数十个小端点了,以下是跑过「端点识别算法」后的底图:

澳门新葡8455最新网站 13

通过上图,可以直观地得出一个结论:识别出来的小端点只在目标(大)端点上集中分布,并且大端点范围内的小端点叠加交错。

如果把叠加交错的小端点归并成一个大端点,那么这个大端点将十分接近目标端点。小端点的归并伪代码如下:

JavaScript

for(let i = 0, len = vertexes.length; i < len – 1; ++i) { let vertexA
= vertexes[i]; if(vertextA === undefined) continue; // 注意这里 j = 0
而不是 j = i +1 for(let j = 0; j < len; ++j) { let vertexB =
vertexes[j]; if(vertextB === undefined) continue; //
点A与点B有叠加,点B合并到点A并删除点B if(isCross(vertexA, vertexB)) {
vertexA = merge(vertexA, vertexB); delete vertexA; } } }

1
2
3
4
5
6
7
8
9
10
11
12
13
14
for(let i = 0, len = vertexes.length; i < len – 1; ++i) {
let vertexA = vertexes[i];
if(vertextA === undefined) continue;
// 注意这里 j = 0 而不是 j = i +1
for(let j = 0; j < len; ++j) {
let vertexB = vertexes[j];
if(vertextB === undefined) continue;
// 点A与点B有叠加,点B合并到点A并删除点B
if(isCross(vertexA, vertexB)) {
vertexA = merge(vertexA, vertexB);
delete vertexA;
}
}
}

加了小端点归并算法后,「端点识别」的准确度就上去了。经笔者本地测试已经可以
100% 识别有损的连通图了。

3.2 对于教学数据库的三个基本表
  学生S(S#,SNAME,AGE,SEX)
  学习 SC(S#,C#,GRADE)
  课程C(C#,CNAME,TEACHER)
 试用SQL的查询语句表达下列查询:

METRO: measure differences between triangular
meshes(Authors)

3.3 夯实砖墙

砖墙在消除了部分砖块后,会出现空洞,此时需要对墙体进行夯实:

向下夯实 向左夯实 向左下夯实(先下后左)

一种快速的实现方案是,每次「消除砖块」后直接遍历砖墙数组(10×10数组)再把空洞夯实,伪代码表示如下:

JavaScript

for(let row = 0; row < 10; ++row) { for(let col = 0; col < 10;
++col) { if(isEmpty(row, col)) { // 水平方向(向左)夯实
if(isEmptyCol(col)) { tampRow(col); } // 垂直方向(向下)夯实 else {
tampCol(col); } break; } } }

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
for(let row = 0; row < 10; ++row) {
for(let col = 0; col < 10; ++col) {
if(isEmpty(row, col)) {
// 水平方向(向左)夯实
if(isEmptyCol(col)) {
tampRow(col);
}
// 垂直方向(向下)夯实
else {
tampCol(col);
}
break;
}
}
}

But…
为了夯实一个空洞对一张大数组进行全量遍历并不是一种高效的算法。在笔者看来影响「墙体夯实」效率的因素有:

  1. 定位空洞
  2. 砖块移动(夯实)

扫描墙体数组的主要目的是「定位空洞」,但能否不扫描墙体数组直接「定位空洞」?

墙体的「空洞」是由于「消除砖块」造成的,换种说法 ——
被消除的砖块留下来的坑位就是墙体的空洞。在「消除砖块」的同时标记空洞的位置,这样就无须全量扫描墙体数组,伪代码如下:

JavaScript

function deleteTile(tile) { // 标记空洞 markHollow(tile.index); //
删除砖块逻辑 … }

1
2
3
4
5
6
function deleteTile(tile) {
// 标记空洞
markHollow(tile.index);
// 删除砖块逻辑
}

在上面的夯实动图,其实可以看到它的夯实过程如下:

  1. 空洞上方的砖块向下移动
  2. 空列右侧的砖块向左移动

墙体在「夯实」过程中,它的边界是实时在变化,如果「夯实」不按真实边界进行扫描,会产生多余的空白扫描:

澳门新葡8455最新网站 14

如何记录墙体的边界?
把墙体拆分成一个个单独的列,那么列最顶部的空白格片段就是墙体的「空白」,而其余非顶部的空白格片段即墙体的「空洞」。

澳门新葡8455最新网站 15

笔者使用一组「列集合」来描述墙体的边界并记录墙体的空洞,它的模型如下:

JavaScript

/* @ count – 列砖块数 @ start – 顶部行索引 @ end – 底部行索引 @
pitCount – 坑数 @ topPit – 最顶部的坑 @ bottomPit – 最底部的坑 */ let
wall = [ {count, start, end, pitCount, topPit, bottomPit}, {count,
start, end, pitCount, topPit, bottomPit}, … ];

1
2
3
4
5
6
7
8
9
10
11
12
13
/*
@ count – 列砖块数
@ start – 顶部行索引
@ end – 底部行索引
@ pitCount – 坑数
@ topPit – 最顶部的坑
@ bottomPit – 最底部的坑
*/
let wall = [
{count, start, end, pitCount, topPit, bottomPit},
{count, start, end, pitCount, topPit, bottomPit},
];

这个模型可以描述墙体的三个细节:

  • 空列
  • 列的连续空洞
  • 列的非连续空洞
JavaScript

// 空列 if(count === 0) { ... } // 连续空洞 else if(bottomPit -
topPit + 1 === pitCount) { ... } // 非连续空洞 else { ... }

<table>
<colgroup>
<col style="width: 50%" />
<col style="width: 50%" />
</colgroup>
<tbody>
<tr class="odd">
<td><div class="crayon-nums-content" style="font-size: 13px !important; line-height: 15px !important;">
<div class="crayon-num" data-line="crayon-5b8f3d2c2df29914802382-1">
1
</div>
<div class="crayon-num crayon-striped-num" data-line="crayon-5b8f3d2c2df29914802382-2">
2
</div>
<div class="crayon-num" data-line="crayon-5b8f3d2c2df29914802382-3">
3
</div>
<div class="crayon-num crayon-striped-num" data-line="crayon-5b8f3d2c2df29914802382-4">
4
</div>
<div class="crayon-num" data-line="crayon-5b8f3d2c2df29914802382-5">
5
</div>
<div class="crayon-num crayon-striped-num" data-line="crayon-5b8f3d2c2df29914802382-6">
6
</div>
<div class="crayon-num" data-line="crayon-5b8f3d2c2df29914802382-7">
7
</div>
<div class="crayon-num crayon-striped-num" data-line="crayon-5b8f3d2c2df29914802382-8">
8
</div>
<div class="crayon-num" data-line="crayon-5b8f3d2c2df29914802382-9">
9
</div>
<div class="crayon-num crayon-striped-num" data-line="crayon-5b8f3d2c2df29914802382-10">
10
</div>
<div class="crayon-num" data-line="crayon-5b8f3d2c2df29914802382-11">
11
</div>
<div class="crayon-num crayon-striped-num" data-line="crayon-5b8f3d2c2df29914802382-12">
12
</div>
</div></td>
<td><div class="crayon-pre" style="font-size: 13px !important; line-height: 15px !important; -moz-tab-size:4; -o-tab-size:4; -webkit-tab-size:4; tab-size:4;">
<div id="crayon-5b8f3d2c2df29914802382-1" class="crayon-line">
// 空列
</div>
<div id="crayon-5b8f3d2c2df29914802382-2" class="crayon-line crayon-striped-line">
if(count === 0) { 
</div>
<div id="crayon-5b8f3d2c2df29914802382-3" class="crayon-line">
 ...
</div>
<div id="crayon-5b8f3d2c2df29914802382-4" class="crayon-line crayon-striped-line">
}
</div>
<div id="crayon-5b8f3d2c2df29914802382-5" class="crayon-line">
// 连续空洞
</div>
<div id="crayon-5b8f3d2c2df29914802382-6" class="crayon-line crayon-striped-line">
else if(bottomPit - topPit + 1 === pitCount) { 
</div>
<div id="crayon-5b8f3d2c2df29914802382-7" class="crayon-line">
 ...
</div>
<div id="crayon-5b8f3d2c2df29914802382-8" class="crayon-line crayon-striped-line">
}
</div>
<div id="crayon-5b8f3d2c2df29914802382-9" class="crayon-line">
// 非连续空洞
</div>
<div id="crayon-5b8f3d2c2df29914802382-10" class="crayon-line crayon-striped-line">
else {
</div>
<div id="crayon-5b8f3d2c2df29914802382-11" class="crayon-line">
 ...
</div>
<div id="crayon-5b8f3d2c2df29914802382-12" class="crayon-line crayon-striped-line">
}
</div>
</div></td>
</tr>
</tbody>
</table>

砖块在消除后,映射到单个列上的空洞会有两种分布形态 —— 连续与非连续。

澳门新葡8455最新网站 16

「连续空洞」与「非连续空洞」的夯实过程如下:

澳门新葡8455最新网站 17

其实「空列」放大于墙体上,也会有「空洞」类似的分布形态 ——
连续与非连续。
澳门新葡8455最新网站 18

它的夯实过程与空洞类似,这里就不赘述了。

底图绘制

「一笔画」是多关卡的游戏模式,笔者决定把关卡(连通图)的定制以一个配置接口的形式对外暴露。对外暴露关卡接口需要有一套描述连通图形状的规范,而在笔者面前有两个选项:

  • 点记法
  • 线记法

举个连通图 —— 五角星为例来说一下这两个选项。

澳门新葡8455最新网站 19

点记法如下:

JavaScript

levels: [ // 当前关卡 { name: “五角星”, coords: [ {x: Ax, y: Ay}, {x:
Bx, y: By}, {x: Cx, y: Cy}, {x: Dx, y: Dy}, {x: Ex, y: Ey}, {x: Ax, y:
Ay} ] } … ]

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
levels: [
// 当前关卡
{
name: "五角星",
coords: [
{x: Ax, y: Ay},
{x: Bx, y: By},
{x: Cx, y: Cy},
{x: Dx, y: Dy},
{x: Ex, y: Ey},
{x: Ax, y: Ay}
]
}
]

线记法如下:

JavaScript

levels: [ // 当前关卡 { name: “五角星”, lines: [ {x1: Ax, y1: Ay, x2:
Bx, y2: By}, {x1: Bx, y1: By, x2: Cx, y2: Cy}, {x1: Cx, y1: Cy, x2: Dx,
y2: Dy}, {x1: Dx, y1: Dy, x2: Ex, y2: Ey}, {x1: Ex, y1: Ey, x2: Ax, y2:
Ay} ] } ]

1
2
3
4
5
6
7
8
9
10
11
12
13
levels: [
// 当前关卡
{
name: "五角星",
lines: [
{x1: Ax, y1: Ay, x2: Bx, y2: By},
{x1: Bx, y1: By, x2: Cx, y2: Cy},
{x1: Cx, y1: Cy, x2: Dx, y2: Dy},
{x1: Dx, y1: Dy, x2: Ex, y2: Ey},
{x1: Ex, y1: Ey, x2: Ax, y2: Ay}
]
}
]

「点记法」记录关卡通关的一个答案,即端点要按一定的顺序存放到数组
coords中,它是有序性的记录。「线记法」通过两点描述连通图的线段,它是无序的记录。「点记法」最大的优势是表现更简洁,但它必须记录一个通关答案,笔者只是关卡的搬运工不是关卡创造者,所以笔者最终选择了「线记法」。:)

 5、查询每门课程的选修人数,输出课程号和选修人数。

The Cornell
Box

3.1 生成砖墙

砖墙分两步生成:

  • 色砖数量分配
  • 打散色砖

理论上,可以将 100 个格子可以均分到 5
类颜色,不过笔者玩过的「消灭星星」都不使用均分策略。通过分析几款「消灭星星」,其实可以发现一个规律
—— 「色砖之间的数量差在一个固定的区间内」。

如果把传统意义上的均分称作「完全均分」,那么「消灭星星」的分配是一种在均分线上下波动的「不完全均分」。

澳门新葡8455最新网站 20

笔者把上面的「不完全均分」称作「波动均分」,算法的具体实现可以参见「波动均分算法」。

「打散色砖」其实就是将数组乱序的过程,笔者推荐使用「
费雪耶兹乱序算法」。

以下是伪代码的实现:

JavaScript

// 波动均分色砖 waveaverage(5, 4, 4).forEach( // tiles 即色墙数组
(count, clr) => tiles.concat(generateTiles(count, clr)); ); //
打散色砖 shuffle(tiles);

1
2
3
4
5
6
7
// 波动均分色砖
waveaverage(5, 4, 4).forEach(
// tiles 即色墙数组
(count, clr) => tiles.concat(generateTiles(count, clr));
);
// 打散色砖
shuffle(tiles);

线段识别

笔者分两个步骤完成「线段识别」:

  1. 给定的两个端点连接成线,并采集连线上N个「样本点」;
  2. 遍历样本点像素,如果像素色值不等于线段色值则表示这两个端点之间不存在线段

如何采集「样式点」是个问题,太密集会影响性能;太疏松精准度不能保证。

在笔者面前有两个选择:N 是常量;N 是变量。
假设 N === 5。局部提取「样式点」如下:

澳门新葡8455最新网站 21

上图,会识别出三条线段:AB, BC 和 AC。而事实上,AC不能成线,它只是因为
AB 和 BC 视觉上共一线的结果。当然把 N 值向上提高可以解决这个问题,不过 N
作为常量的话,这个常量的取量需要靠经验来判断,果然放弃。

为了避免 AB 与 BC 同处一直线时 AC 被识别成线段,其实很简单 ——
两个「样本点」的间隔小于或等于端点直径
假设 N = S / (2 * R),S 表示两点的距离,R
表示端点半径。局部提取「样式点」如下:

澳门新葡8455最新网站 22

如上图,成功地绕过了 AC。「线段识别算法」的伪代码实现如下:

JavaScript

for(let i = 0, len = vertexes.length; i < len – 1; ++i) { let {x: x1,
y: y1} = vertexes[i]; for(let j = i + 1; j < len; ++j) { let {x:
x2, y: y2} = vertexes[j]; let S = Math.sqrt(Math.pow(x1 – x2, 2) +
Math.pow(y1 – y2, 2)); let N = S / (R * 2); let stepX = (x1 – x2) / N,
stepY = (y1 – y2) / n; while(–N) { // 样本点不是线段色
if(!isBelongLine(x1 + N * stepX, y1 + N * stepY)) break; } //
样本点都合格 —- 表示两点成线,保存 if(0 === N) lines.push({x1, y1, x2,
y2}) } }

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
for(let i = 0, len = vertexes.length; i < len – 1; ++i) {
let {x: x1, y: y1} = vertexes[i];
for(let j = i + 1; j < len; ++j) {
let {x: x2, y: y2} = vertexes[j];
let S = Math.sqrt(Math.pow(x1 – x2, 2) + Math.pow(y1 – y2, 2));
let N = S / (R * 2);
let stepX = (x1 – x2) / N, stepY = (y1 – y2) / n;
while(–N) {
// 样本点不是线段色
if(!isBelongLine(x1 + N * stepX, y1 + N * stepY)) break;
}
// 样本点都合格 —- 表示两点成线,保存
if(0 === N) lines.push({x1, y1, x2, y2})
}
}

    或: Select sno,sname,ssex from s
where sno in

Infer.Net-
Bayesian Inference in Graphical Models (T. Minka, J. Winn, J. Guiver, A.
Kannan)

5. Control

Control 要处理的事务比较多,如下:

  • 绑定 Model & View
  • 生成通关分值
  • 判断通关条件
  • 对外事件
  • 用户交互

初始化时,Control 把 Model 的砖块单向绑定到 View 的砖块了。如下:

Object.defineProperties(model.tile, { originIndex: { get() {…}, set(){
… view.update({originIndex}) } }, index: { get() {…}, set() { …
view.update({index}) } }, clr: { get() {…}, set() { …
view.update({clr}) } }, removed: { get() {…}, set() { …
view.update({removed}) } }, score: { get() {…}, set() { …
view.update({score}) } } })

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
Object.defineProperties(model.tile, {
    originIndex: {
        get() {…},
        set(){
            …
            view.update({originIndex})
        }
    },  
    index: {
        get() {…},
        set() {
            …
            view.update({index})
        }
    },
    clr: {
        get() {…},
        set() {
            …
            view.update({clr})
        }
    },
    removed: {
        get() {…},
        set() {
            …
            view.update({removed})
        }
    },  
    score: {
        get() {…},
        set() {
            …
            view.update({score})
        }
    }
})
 

「通关分值」与「判断通关条件」这对逻辑在本文的「游戏规则」中有相关介绍,这里不再赘述。

对外事件规划如下:

name detail
pass 通关
pause 暂停
resume 恢复
gameover 游戏结束

用户交互 APIs 规划如下:

name type deltail
init method 初始化游戏
next method 进入下一关
enter method 进入指定关卡
pause method 暂停
resume method 恢复
destroy method 销毁游戏

性能优化

由于「自动识图」需要对图像的的像素点进行扫描,那么性能确实是个需要关注的问题。笔者设计的「自动识图算法」,在识别图像的过程中需要对图像的像素做两次扫描:「采集色值表」
与 「采集端点」。在扫描次数上其实很难降低了,但是对于一张 750 * 1334
的底图来说,「自动识图算法」需要遍历两次长度为
750 * 1334 * 4 = 4,002,000
的数组,压力还是会有的。笔者是从压缩被扫描数组的尺寸来提升性能的。

被扫描数组的尺寸怎么压缩?
笔者直接通过缩小画布的尺寸来达到缩小被扫描数组尺寸的。伪代码如下:

JavaScript

// 要压缩的倍数 let resolution = 4; let [width, height] = [img.width
/ resolution >> 0, img.height / resolution >> 0];
ctx.drawImage(img, 0, 0, width, height); let imageData =
ctx.getImageData(), data = imageData;

1
2
3
4
5
// 要压缩的倍数
let resolution = 4;
let [width, height] = [img.width / resolution >> 0, img.height / resolution >> 0];
ctx.drawImage(img, 0, 0, width, height);
let imageData = ctx.getImageData(), data = imageData;

把源图片缩小4倍后,得到的图片像素数组只有原来的
4^2 = 16倍。这在性能上是很大的提升。

         
班级代码、学生姓名、语文成绩、数学成绩、外语成绩。

manifold approximation of 3D medial
axis(S.
Yoshizawa)

7. 结语

下面是本文介绍的「消灭星星」的线上 DEMO 的二维码:

澳门新葡8455最新网站 23

游戏的源码托管在:

感谢耐心阅读完本文章的读者。本文仅代表笔者的个人观点,如有不妥之处请不吝赐教。
如果对「H5游戏开发」感兴趣,欢迎关注我们的专栏。

自动识图

笔者在录入关卡配置时,发现一个7条边以上的连通图很容易录错或录重线段。笔者在思考能否开发一个自动识别图形的插件,毕竟「一笔画」的图形是有规则的几何图形。

澳门新葡8455最新网站 24

上面的关卡「底图」,一眼就可以识出三个颜色:

  • 白底
  • 端点颜色
  • 线段颜色

并且这三种颜色在「底图」的面积大小顺序是:白底 > 线段颜色 >
端点颜色。底图的「采集色值表算法」很简单,如下伪代码:

JavaScript

let imageData = ctx.getImageData(); let data = imageData.data; // 色值表
let clrs = new Map(); for(let i = 0, len = data.length; i < len; i +=
4) { let [r, g, b, a] = [data[i], data[i + 1], data[i + 2],
data[i + 3]]澳门新葡8455最新网站,; let key = `rgba(${r}, ${g}, ${b}, ${a})`; let value =
clrs.get(key) || {r, g, b, a, count: 0}; clrs.has(key) ? ++value.count :
clrs.set(rgba, {r, g, b, a, count}); }

1
2
3
4
5
6
7
8
9
10
let imageData = ctx.getImageData();
let data = imageData.data;
// 色值表
let clrs = new Map();
for(let i = 0, len = data.length; i < len; i += 4) {
let [r, g, b, a] = [data[i], data[i + 1], data[i + 2], data[i + 3]];
let key = `rgba(${r}, ${g}, ${b}, ${a})`;
let value = clrs.get(key) || {r, g, b, a, count: 0};
clrs.has(key) ? ++value.count : clrs.set(rgba, {r, g, b, a, count});
}

对于连通图来说,只要把端点识别出来,连通图的轮廓也就出来了。

255.            select S#,avg(isnull(score,0)) from SC where S# in (select S# from SC where score <60 group by S# having count(*)>2)group by S#; 

Fast and Accurate Circle-Circle and Circle-Line 3D Distance
Computation(D.
Vranek)

6. 问题

在知乎有一个关于「消灭星星」的话题:popstar关卡是如何设计的?

这个话题在最后提出了一个问题 ——
「无法消除和最大得分不满足过关条件的矩阵」

澳门新葡8455最新网站 25

「无法消除的矩阵」其实就是最大得分为0的矩阵,本质上是「最大得分不满足过关条件的矩阵」。

最大得分不满足过关条件的矩阵
求「矩阵」的最大得分是一个
「背包问题」,求解的算法不难:对当前矩阵用「递归」的形式把所有的消灭分支都执行一次,并取最高分值。但是
javascript 的「递归」极易「栈溢出」导致算法无法执行。

其实在知乎的话题中提到一个解决方案:

网上查到有程序提出做个工具随机生成关卡,自动计算,把符合得分条件的关卡筛选出来

这个解决方案代价是昂贵的!笔者提供有源码并没有解决这个问题,而是用一个比较取巧的方法:进入游戏前检查是事为「无法消除矩阵」,如果是重新生成关卡矩阵

注意:笔者使用的取巧方案并没有解决问题。

          wherestudent.sno=sc.sno and
cno=’1002′

MiniLight minimal global illumination
renderer(monte-carlo
path tracing, progressive refinement, Ward linear tone mapping, octree
spatial index) (H. Ainsworth)

3.4 消除残砖

上一小节提到了「描述墙体的边界并记录墙体的空洞」的「列集合」,笔者是直接使用这个「列集合」来消除残砖的,伪代码如下:

JavaScript

function clearAll() { let count = 0; for(let col = 0, len =
this.wall.length; col < len; ++col) { let colInfo = this.wall[col];
for(let row = colInfo.start; row <= colInfo.end; ++row) { let tile =
this.grid[row * this.col + col]; tile.score = -20 – 40 * count++; //
标记奖励分数 tile.removed = true; } } }

1
2
3
4
5
6
7
8
9
10
11
function clearAll() {
let count = 0;
for(let col = 0, len = this.wall.length;  col < len; ++col) {
let colInfo = this.wall[col];
for(let row = colInfo.start; row <= colInfo.end; ++row) {
let tile = this.grid[row * this.col + col];
tile.score = -20 – 40 * count++; // 标记奖励分数
tile.removed = true;
}
}
}

(1)检索LIU老师所授课程的课程号和课程名。
    SELECT C#,CNAME
    FROM C
    WHERE TEACHER=‘LIU’

Detail-Replicating Shape
Stretching(Implicit
mesh fairing using curvature flow, patch-based texture synthesis, octree
with ray tracing, bézier splines) (I. Alhashim)

(8)求年龄大于女同学平均年龄的男学生姓名和年龄。
    SELECT SNAME,AGE
    FROM S AS X
    WHERE X.SEX=’男’ AND X.AGE>(SELECT AVG(AGE)FROM S AS Y WHERE
Y.SEX=’女’)

El
Topo(robust
surface tracking with triangle meshes) (T. Brochu, R. Bridson)

   
Selectcno,sum(grade),avg(grade),max(grade),min(grade)

Visualizing LIDAR in Google
Earth(M.
Isenburg, J. Shewchuck)

   1. 依赖于                 2.
记录、数据项

Large Modal Deformation
Factory:
Model reduction of StVK FEM deformable models (linear modes, arbitrary
free boundary conditions, modal derivatives, mass and stiffness
matrices, triangle mesh to cube volume mesh conversion) (J. Barbic)

7.  
1、查询“001”课程比“002”课程成绩高的所有学生的学号; 

Computational Geometry

(2)求选修C4课程的学生的平均年龄。
    SELECT AVG(AGE)
    FROM S
    WHERE S# IN
     (SELECT S#
     FROM SC
     WHERE C#=’C4′)
或者,
    SELECT AVG(AGE)
    FROM S,SC
    WHERE S.S#=SC.S# AND C#=’004′

Graphite(ABF,
ABF++, DPBF, LSCM, HLSCM, Barycentric, mean-value coordinates, L2
stretch,spectral
conformal,Periodic
Global
Parameterization,Constrained
texture
mapping,texture
atlas
generation)
[documentation
wiki]
(Authors)

         where  s.sno=sc.sno
andc.cno=sc.cno and cname=’数据库’

Adaptive Thresholding Using the Integral
Image[Also](https://link.jianshu.com?t=http://jgt.akpeters.com/papers/BradleyRoth07/)

    SelectBJDM,XSXM,max(CJ) from SC

Emerging Images
Demo(N.
Mitra, H.-K. Chu, T.-Y. Lee, L. Wolf, H. Yeshurun, D. Cohen-Or)

二、填空 (每空1分,共20分)

Data Sets

84. 
                      FROM SC AS IR 

harmonic
oscillator:
exact timestepping of 1D ODE (J. Barbic)

              ( Select sno from sc where
cno=’7′ )

Volumetric Modeling with Diffusion
Surfaces(K.
Takayama, O. Sorkine, A. Nealen, T. Igarashi)

    order by KnoASC

glSoftShadowOpenGL
soft shadows implementation (U. Borgenstam, J. Svensson)

    havingcount(*)>5

Real-time implicit surface
polygonizer(R.
Schmidt)

   
5.基本表属于全局模式中的表,它是____实表____,而视图则属于局部模式中的表,它是____虚表
____。

Bits and Pieces

注意本题也可以用嵌套做

Visibility Cuts shadows for Precomputed Radiance
Transfer(also
Ashikhmin-Shirley shader) (F. Hecht)

       A.         B.         C.        D.

Crytek Sponza Model
v2(increased
complexity, 3ds, OBJ formats, textures) (F. Meinl, Crytek)

    wherestudent.sno=sc.sno and
ssex=’男’

Normalizing for Anisotropy in Triangle
Models(M.
Kazhdan)

168.                ) AS T2 

Weighted Voronoi
Stippling(A.
Secord)

218.            select SC.S#,Student.Sname from SC,Student where SC.S#=Student.S# and Score>80 and C#=’003′; 

tunicate: robust computational geometry predicates in floating
point(R.
Bridson)

    或:

SHLIGHT:
spherical harmonic lighting program (T. Huang, I. Lisle)

    Selects.sno,sname from s,sc,c

FDim:
compute fractal dimension of grayscale image (Capacity Dimension,
Information Dimension, Correlation Dimension, Probability Dimension) (M.
Reuter)

  (5)
DELETEFROMS_GRADE
WHEREC_NUM>4
    不允许

Volumetric
Mesh:
tetrahedral and cube volumetric 3D meshes (J. Barbic)

 

ply2vri(convert
PLY mesh to signed-distance volumetric grid, VRI/PPM formats) (B.Allen)

234.                      WHERE t1.C#= C# 

SIFT++(A.
Vedaldi)

66. 
    SELECT S# as 学生ID 

Permission
Gridmesh
simplification (S. Zelinka)

68. 
        ,(SELECT score FROM SC WHERE SC.S#=t.S# AND C#=’001′) AS 企业管理 

Non-Iterative, Feature-Preserving Mesh
Smoothing(also
[Page])
(T. Jones)

              (select sno from sc where
cno=’1002′ )

Caltech Mesh
Compendium(Ball
Joint,Dinosaur Sculpture,Golf Club,Igea Artifact,Isis,Knee,Rocker
Arm,Santa,Screwdriver,Teeth Casting,Horse,Skeleton Hand,Turbine
Blade,Cactus,Cat,Cessna,Club,Cow,Distributor
Cap,Engine,Fandisk,Gargoyle,Hypersheet,Knot,Mechanical Part,Oil
Pump,Teapot,Tyrannosaurus Rex,Dragon,Feline Model,Femme,Happy
Buddha,Headus Skull,Max Planck,Molecule,Rabbit Sculpture,Stanford
Bunny,Zander,Zoë,Duck,Mummy,Bust of Nefertiti,Top,Totem,Vase #1,Vase
#2,Chair,Dental Cast,Foot,Hand,female Mannequin Head,Pregnant
Woman,kissing-children
Sculpture,Shoe,Toilet,Cube,Hexagon,Icosahedron,Octahedron,Pentagon,Quadrilateral,Right
Tetrahedron,Right Triangle,Armadillo Man,Dragon,Happy Buddha,Stanford
Bunny,Cat Head,Face,Mannequin Head,Spocks Head,Stamped Part,
Stegosaurus, Torus, Triceratops, Venus Torso)

 6、找出不学C2课程的学生姓名和年龄。

OpenRACM: Random-Accessible Compressed
Meshes(S.E.
Yoon, P. Lindstrom)

78. 
        L.score = (SELECT MAX(IL.score) 

Discrete Laplace Operator on Meshed
Surfaces(J.
Sun, M. Belkin, Y. Wang)

 

SunSky sun/sky model
code(A.
Willmott)

89. 
    SELECT t.C# AS 课程号,max(course.Cname)AS 课程名,isnull(AVG(score),0) AS 平均成绩 

Hybrid Texture
Synthesis[Page]
(A. Nealen, M. Alexa)

236.                      ) 

ShadeVis: compute per-vertex ambient occlusion
term(Authors)

17、(补充)查询每门课程的及格率。

TAGL: software
rasterizer(B.
Levy)

    Select sno fromsc where cno=’1001′ and
grade is null

Parameterization

    WHERE NOTEXISTS

PowerCrust(watertight
polygonal meshing of point set, medial axis transform, simplified medial
axis) (N. Amenta) [updated
port]

       A.250        B.252        
C.254           D.255

PMVS: Patch-based Multi-view Stereo
Software(Y.
Furukawa, J. Ponce)

252.        47、查询没学过“叶平”老师讲授的任一门课程的学生姓名 

Color Compatibility from Large
Datasets(P.
O’Donovan, A. Agarwala, A. Hertzmann)

 7、找出选修了数据库课程的所有学生姓名。(同3)

A Fast Triangle-Triangle Overlap Test Using Signed
Distances(H.
Shen, Z. Tang)

8.  
  select a.S# from (select s#,score from SC where C#=’001′) a,(select s#,score 

AIM@SHAPE 3D model
repository

   1. 标题栏、菜单栏、工作区  
(次序无先后)

A Simple Fluid Solver Based on the
FFT(J.
Stam)

        from 商品表1

Frequency Analysis and Sheared Reconstruction for Rendering Motion
Blur(K.
Egan, Y.-T. Tseng, N. Holzschuch, F. Durand, R. Ramamoorthi)

222.            select Student.Sname,score 

Normal Improvement for Point
Rendering(bilateral
normal filtering)
[Page]
(T. Jones)

120.              ISNULL(T1.score,0) + ISNULL(T2.score,0) + ISNULL(T3.score,0) + ISNULL(T4.score,0) as 总分 

Point Set Processing

    Select count(*)from student

Multi-scale Compactly Supported Radial Basis
Functions(Y.
Ohtake)

237.              ORDER BY t1.C#; 

Volfillfill
holes in mesh using volumetric diffusion (S. Marschner, K. Berglund)

207.        35、查询所有学生的选课情况; 

Real-time Edge Aware Image Processing with the Bilateral
Grid(J.
Chen, S. Paris, F. Durand)

3.10 预处理方式对于嵌入式SQL的实现有什么重要意义?
   
预处理方式是先用预处理程序对源程序进行扫描,识别出SQL语句,并处理成宿主语言的函数调用形式;
然后再用宿主语言的编译程序把源程序编译成目标程序。这样,不用扩充宿主语言的编译程序,
就能处理SQL语句。

Poisson Surface
Reconstruction(M.
Kazhdan)

  (2)
SELECTS#,C_NUM
FROMS_GRADE
WHEREAVG_GRADE>80
    允许
   SELECT S#,COUNT(C#) FROM SC WHEREAVG(GRADE)>80

JMeshLib(read/write
OFF/PLY/STL/VRML1/VRML2/OBJ/IV 2.1) (M. Attene)

   3. 表、建立                        4.
分组统计、排序

3D Model Synthesis from
examples(P.
Merrell)

182.        27、查询出只选修了一门课程的全部学生的学号和姓名 

Interactive and Anisotropic Geometry Processing Using the Screened
Poisson
Equation(M.
Kazhdan)

   1. D  2. B  3. D 4. B  5. C  6. C 7. B

Topology-based Smoothing of 2D Scalar Fields with
C1-Continuity[Page]
(T. Weinkauf, Y. Gingold, O. Sorkine)

                         FROM SC
SC3

KKTDirect: a direct solver package for saddle-point ( KKT )
matrices(R.
Bridson)

 2、查询7号课程成绩在90分以上或60分以下的学生学号。

Smooth Two-Dimensional Interpolations: A Recipe for All
Polygons(E.
Malsch, J. Lin, G. Dasgupta)

    WHERE SC1.SnoNOT IN

LumosQuad(2D
lighting simulation and rendering, quadtree conjugate gradient Poisson
solver) (T. Kim, M. Lin)

12. 
    select S#,avg(score) 

CurveSkel: 1D curve skeleton of 3D
shape(T.
Dey, J. Sun)

 

efpisoft: hierarchical mesh segmentation based on fitting
primitives(M.
Attene)

    功能:
从教学库中查询出最多选修了2门课程(含未选任何课程)的全部学生。

ETH Face Pose Range Image Data
Set(10,000
640×480 range image point sets of 20 moving faces, read/write code) (M.
Breitenstein, D. Kuettel, T. Weise, L. van Gool, H. Pfister)

23. 
5、查询没学过“叶平”老师课的同学的学号、姓名; 

Implicit Newmark and Central Differences
Integratorsfor
large deformation nonlinear FEM elasticity (J. Barbic)

 

VisualSFM: A Visual Structure from Motion
System(C.
Wu)

    或:  SelectBJDM,XSXM,min(CJ) from
SC

newmat(C++
dense matrix library
[documentation])
(R. Davies)

235.                    ORDER BY score DESC 

PatchMatch: A Randomized Correspondence Algorithm for Structural Image
Editing(C.
Barnes, E. Schectman, A. Finkelstein, B. Goldman)

    group by sno

Skinning Mesh Animations
Demo(C.
Twigg)

    Selects.sno,sname,ssex from s,sc where
s.sno=sc.sno and cno=’7′

P3
ToneMapper(openEXR,RGBE
in, PNG, PPM out, Ward tone mapping) (H. Ainsworth)

    havingavg(grade)>90

CGAL Subdivision
Demo(Sqrt3,
Quad-Triangle, Catmull-Clark, Doo-Sabin) (L.-J. Shiue, P. Alliez, R.
Ursu, L. Kettner)

108.            where T.C#=C.C# and C.T#=Z.T# 

TRIANGLE: 2D high-quality exact/constrained/conforming Delaunay
triangulations(J.
Shewchuk)

         ( Selectsno from sc where
cno=’C2′ )

Antiprism polyhedra
library(convex
hull, polar reciprocals (dual meshes), geodesic spheres, uniform
polyhedra, uniform tilings on surfaces, lattices and grids, ring/spiral
of points on sphere, equilibrium of points repelling on sphere,
near-uniform sphere tessellation, many other polyhedra types, OFF
conversion utilities) [A. Rossiter]

73. 
    ORDER BY avg(t.score)  

As-rigid-as-possible 2D shape
manipulation(R.
Schmidt)

    SelectBJDM,XSXM,min(CJ) from SC

jot: NPR
library

10、查询学生姓名以及他选修课程的课程号及成绩。

Distributed Gradient-Domain Processing of Planar and Spherical
Images(M.
Kazhdan)

 

EXPLORATION OF CONTINUOUS VARIABILITY IN COLLECTIONS OF 3D
SHAPES(M.
Ovsjanikov, W. Li, L. Guibas, N. Mitra)

                    ( select cno from
course where cname=’数据库原理’ )

aperture(light-field
viewer)

 3、查询每个客户在2002年5月购买的总金额,输出客户号和相应的总金额。

A Level-set Method for Skinning Animated Particle
Data(thin-plate
energy, grid mean curvature/laplacian/biharmonic, kdtree, marching
tetrahedra) (H. Bhattacharya, Y. Gao, A. Bargteil)

 6、查询平均分大于90分的男学生学号及平均分。

HandleTunnel: computing handle and tunnel loops on
surfaces(T.
Dey, K. Li, J. Sun)

45. 
    select S#,Sname from Student,SC where Student.S#=SC.S# and C# in select C# from SC where S#=’1001′; 

Nuages3D
delaunay mesh reconstruction from parallel cross-sections (B. Geiger)

52. 
    from SC SC_2 

3d-workspace(quadric
mesh simplification, re-meshing,
recursive/monte-carlo/sphere-packing/voxel sampling, skeleton
extraction, Laplacian/scale-dependent/mean-curvature-flow smoothing,
Sqrt3/Loop/modified-butterfly/longest-edge subdivision, minimum bounding
box, mean value coordinates, Green coordinates, curvature (polynomial
fitting, two other implementations), FFD, voxel deformation, skinning
with dual quaternions, mesh voxelization, octree, kd-tree, colormap,
mesh slicing)
(Authors)

72. 
    GROUP BY S# 

McGuire Graphics
Data(San
Miguel, Crytek Sponza, Dabrovic Sponza, Sibenik Cathedral, Conference
Room, Chinese Dragon, Teapot, Cube, Happy Buddha, Hairball, Cornell Box,
Rungholt, Lost Empire, Infinite Realities Head, textured OBJs)

                      ( Select Yno from
YWY where Yname=’王海亮’ )

Interactive Segmentation
Tool-Box(lazy
snapping, GrabCut interactive graph cut)

(6)检索全部学生都选修的课程的课程号与课程名。
    SELECT C#,CNAME
    FROM C
    WHERE NOT EXISTS
     (SELECT *
     FROM S
     WHERE S# NOT IN
      (SELECT *
      FROM SC
      WHERE  SC.C#=C.C#))

LFDisplay: a real-time system for light field
microscopy

 

Texture
filtering(bilinear,
mipmap, elliptic-weighted average) [link to .h/.cpp at bottom of
page
] (M. Pharr)

 8、查询有30名以上学生选修的课程号。

MPCG: Multi-Preconditioned Conjugate
Gradients(R.
Bridson, C. Greif)

          SelectBJDM,XSXM,max(CJ),avg(CJ)
from SC

Fast Polygon Triangulation based on Seidel’s
Algorithm(A.
Narkhede, D. Manocha)

 1、查询工资在1000到3000元之间的男性业务员的姓名和办公室编号。

siteplan: rapid architectural prototyping using procedural
extrusions(T.
Kelly, P. Wonka)

90. 
        ,100 * SUM(CASE WHEN  isnull(score,0)>=60 THEN 1 ELSE 0 END)/COUNT(*) AS 及格百分数 

sculpt: simple level set sculpting
program(multi-resolution
point splatting) (R. Bridson)

   
7.数据字典是对系统工作流程中____数据____和____处理____的描述。

A Low Distortion Map Between Disk and
Square(P.
Shirley, K. Chiu)

    where sno in (select sno from student
where ssex=’男’)

CGAL(LP linear
programming, QP quadratic programming)
(Authors)

    (1)SELECT A,B,C
      FROM R
      UNION
      SELECT A,B,C
      FROM S

Fast Ray/Axis-Aligned Bounding Box Overlap Tests using Ray
Slopes(M.
Eisemann, M. Magnor, T. Grotsch, S. Muller)

    from  SC SC1, SC SC2, SC SC3

Calculation of Mappings between one and n-dimensional values using
hilbert space-filling
curve(J.
K. Lawder)

3.8 在第1章例1.4中提到“仓库管理”关系模型有五个关系模式:
  零件 PART(P#,PNAME,COLOR,WEIGHT)
  项目 PROJECT(J#,JNAME,DATE)
  供应商 SUPPLIER(S#,SNAME,SADDR)
  供应 P_P(J#,P#,TOTOAL)
  采购 P_S(P#,S#,QUANTITY)

Hardware-Accelerated Point Generation and Rendering of Point-Based
Impostors(J.
Baerentzen)

 7、输出一张表格,每一位学生对应一条记录,包括字段:

Fast Tetrahedron-Tetrahedron Overlap
Algorithm(F.
Ganovelli, F. Ponchio, C. Rocchini)

    where sno in

Laplacian Surface
Editing(2D
curve deformation) (O. Sorkine, D. Cohen-Or, Y. Lipman, M. Alexa, C.
Roessl, H.-P. Seidel)

(1)统计有学生选修的课程门数。
    SELECT COUNT(DISTINCT C#) FROM SC

VariationalViscosity2D:
2D viscous free surface simulation (C. Batty)

         ( Selectsno from sc group by sno
having count(*)>=3 )

Reproducible
Researcharchive
(image processing, vision, machine learning) (Xin Li)

3.10 预处理方式对于嵌入式SQL的实现有什么重要意义?
   
预处理方式是先用预处理程序对源程序进行扫描,识别出SQL语句,并处理成宿主语言的函数调用形式;
然后再用宿主语言的编译程序把源程序编译成目标程序。这样,不用扩充宿主语言的编译程序,
就能处理SQL语句。

Reducing Noise in Image-Space Caustics with Variable-Sized
Splatting(C.
Wyman, C. Dachsbacher)

56. 
    group by S# having count(*)=(select count(*) from SC where S#=’1002′); 

Simple and Efficient Traversal Methods for Quadtrees and
Octrees(S.
Frisken, R. Perry)

   
4.从商品库中查询出每类(即分类名相同)商品的最高单价。

M.E.S.H. : Measuring Error between Surfaces using the Hausdorff
distance(N. Aspert,
D. Santa-Cruz, T. Ebrahimi)

        from 学生,选课

An Image Inpainting Technique Based on the Fast Marching
Method(A.
Telea)

    FROM SC SC1

Exact Evaluation of Subdivision
Surfaces(eigenstructures
for Catmull-Clark and Loop schemes) (J. Stam)

2.13 嵌入式SQL语句何时不必涉及到游标?何时必须涉及到游标?
    (1)INSERT、DELETE、UPDATE语句,查询结果肯定是单元组时的SELECT语句,
都可直接嵌入在主程序中使用,不必涉及到游标。
    (2)当SELECT语句查询结果是多个元组时,此时宿主语言程序无法使用,
一定要用游标机制把多个元组一次一个地传送给宿主语言处理。

GPU Ocean Surface
Simulation[Page]
(S. Lefebvre)

select distinct 学生.*

FCam:
FrankenCameracamera
control
library(Contributors)

213.            FROM student,Sc 

Computing a View Frustum to Maximize an Object’s Image
Area(K-L.
Low, A. Ilie)

19、查询平均分不及格的学生人数。

Image and Video Processing

   
9.可以通过Internet进行数据发布的对象是(    )。

MIT CSAIL Textured Models
Database()

    4.Access用户操作界面由(   
)部分组成。

GTS(2D
dynamic/constrained Delaunay triangulation, robust geometric predicates,
mesh boolean set operations, refinement/coarsening, view-independent
continuous LOD, view-dependent LOD, AABB-trees, Kd-trees, graph
partitioning, isosurfacing, area, volume, mean/gaussian/principal
curvature, stripification)

(3)检索至少选修LIU老师所授课程中一门课程的女学生姓名。
    SELECT SNAME
    FROM S
    WHERE SEX=‘F’ AND S# IN
     (SELECT S#
     FROM SC
     WHERE C# IN
      (SELECT C#
      FROM C
      WHERE TEACHER=‘LIU’)

radiosity
renderers(progressive
and wavelet radiosity, face cluster radiosity) (A. Willmott, P.
Heckbert)

   5. 局部ER图、整体ER图            6.
设计要求、功能完善、操作方便

DeformCD: collision detection for deformable
models(M.
Tang, D. Manocha)

               )

Dynamics of a single rigid
body(explicit
Euler, symplectic Euler, time-varying external forces and torques,
arbitrary inertia tensors) (J. Barbic)

139.                    LEFT JOIN sc AS T2 

Direct Spherical Harmonic Transform of a Triangulated
Mesh(M.
Mousa, R. Chaine, S. Akkouche)

113.            SELECT  DISTINCT top 3 

Stellar: a tetrahedral mesh improvement
program(B.
Klingner, J. Shewchuk)

91. 
    FROM SC T,Course 

Texturing

    where sno notin ( select sno from sc
where cno=’1002′)

Blue Noise through Optimal
Transport(lloyd
iteration, voronoi tessellation, arbitrary density functions) (F. de
Goes, K. Breeden, V. Ostromoukhov, M. Desbrun)

 

Normal Patches /
PN-Triangles(R.
Stimpson)

    where  s.sno=sc.sno and c.cno=sc.cno
andcname=’Maths’

SurfRemesh: Delaunay Remeshing of Polygonal
Surfaces(T.
Dey, T. Ray)

        )

Vrip(convert
aligned range images to volumetric format, extract mesh surface) (B.
Curless)

         where notexists

2D Fast Object
Distribution(Halton
sequence computation)
[Page]
(A. Willmott)

224.            where Student.S#=SC.S# and SC.C#=C.C# and C.T#=Teacher.T# and Teacher.Tname=’叶平’ and SC.score=(select max(score)from SC where C#=C.C# ); 

Efficient Splatting Using Modern Graphics
Hardware(D.
Xue, R. Crawfis)

    或: select sname from student

FreeSurfer:
reconstruction of the brain’s cortical surface from structural MRI data
and overlay of functional MRI data
(wiki)
(contributors)

 

Fast Ray-Axis Aligned Bounding Box Overlap Tests with Plücker
Coordinates(J.
Mahovsky, B. Wyvill)

    SelectOno,count(*) from YWY group by
Ono

Exact
CCD:
Geometrically exact continuous collision detection for triangle meshes.
(T. Brochu, E. Edwards, R. Bridson)

    order bysdept,sno

Antimony(poisson-disk
sample generation) (D. Dunbar, G. Humphreys)

      

chag:ppCUDA
parallel primitives library (reduction, prefix operations (scan),
compaction, radix sort)

    group bys.sno,sname

Image
Quilting(T.
Jones)

         ( Select sno from sc where
grade<60 )

Mesh Processing

    4.在Access中模块分为   类模块      
和       标准模块     两种类型。

Local Histogram Equalization using Bilateral
Grid(J.
Chen)

   Select snamefrom s,sc where
s.sno=sc.sno

CoMISo: Constrained Mixed Integer
Solver(H.
Zimmer, D. Bommes, L. Kobbelt)

16、查询每门课程成绩都高于该门课程平均分的学生学号。

Metropolis Procedural
Modeling(J.
Talton, Y. Lou, S. Lesser, J. Duke, R. Mech, V. Koltun)

 

2D Boiling
Demo(CML
coupled map atlas on GPU) (M. Harris, G. Coombe, T. Sheuermann, A.
Lastra)

154.            where SC.C#=Course.C# 

interpolate3d: A Natural Neighbour Interpolation program for 3D
data(R.
Hemsley)

    本题可以分三步做:

MIRT: Medical Image Registration
Toolbox(similarity,
mutual information MI, residual complexity RC, sum square differences
SSD, sum absolute differences SAD, correlation coefficient CC, CD2, MS,
transformation models, parametric free form deformation FFD,
non-parametric variational, implicit euler, curvature-based
regularization, multiresolution) (A. Myronenko)

177.                    ORDER BY score DESC 

trimeshinfo: compute mesh
properties(manifold,
genus, orientation, volume, self-intersection, boundaries, connected
components, …)
(Authors)

172.              SELECT t1.S# as 学生ID,t1.C# as 课程ID,Score as 分数 

Inverse Kinematics for Serial
Manipulators(D.
Manocha, Y. Zhu)

         ( SelectOno from YWY where
Yno=’1538′ )

Capacity-Constrained Delaunay Triangulation for Point
Distributions(Y.
Xu, L. Liu, C. Gotsman, S. Gortler)

          group by 学生号 having
count(*)=1

Stanford Volume Data
Archive(CThead,
MRBrain, CTbunny)

 

Coherent Point
Drift(rigid,
affine, nonrigid N-D alignment and correspondence) (A. Myronenko)

194.            select Sname,  CONVERT(char (11),DATEPART(year,Sage)) as age 

Discrete Laplacians on General Polygonal
Meshes(M.
Alexa, M. Wardetzky)

 3、输出一张表格,每位学生对应一条记录,包括字段:

QualMesh: Delaunay meshing of surfaces and
volumes(T.
Dey, T. Ray)

 5、计算每一门课的总分、平均分,最高分、最低分。

Smooth Shape-Aware Functions with Controlled
Extrema(A.
Jacobson, T. Weinkauf, O. Sorkine)

 

Fast High-Dimensional Filtering Using the Permutohedral
Lattice(A.
Adams, J. Baek, A. Davis)

140.                              ON sc.S# = T2.S# AND T2.C# = ‘k2’ 

Local Laplacian Filters: Edge-aware Image Processing with a Laplacian
Pyramid(S.
Paris, S. Hasinoff, J. Kautz)

   
在名称为教学库的数据库中包含有学生、课程和选课三个表,它们的定义分别为:

Easy Mesh
Cutting(Z.
Ji, L. Liu, Z. Chen, G. Wang)

11、查询选修“数据库原理”课且成绩 80
以上的学生姓名(用连接和嵌套2种方法)

Coons
Patches(R.
Stimpson)

               (select sno from sc where
grade>80 and cno in 

Shape Modeling

183.          select SC.S#,Student.Sname,count(C#) AS 选课数 

Algorithms to Automatically Quantify the Geometric Similarity of
Anatomical
Surfaces(D.
Boyer, Y. Lipman, E. St Clair, J. Puente, B. Patel, T. Funkhouser, J.
Jernvall, I. Daubechies)

   
1.若一个关系的任何非主属性都不部分依赖依赖于任何候选码,则称该关系达到____第二____范式。

BOOLEconvert
CSG to Brep (curved solid primitives, polygonal solids) (T. Culver)

134.                    TOP 15 WITH TIES 

CGAL(Poisson
reconstruction, spacing estimation, simplification, outlier removal,
smoothing, normal estimation, orientation estimation)[full packages
list]
(Authors)

   
2.在SQL中,列级完整性约束分为__6__种情况,表级完整性约束分为__4__种情况。

ANN- C++
approximate neareset-neighbours in dimensions ~(8,20) (D. Mount, S.
Arya)

63. 
    Insert SC select S#,’002′,(Select avg(score) 

Volume-Meshed
Models(Cube,
TFire, Tire, Dragon, Cow, Sculpt, LetterP, House, StayPuft) (B. Klinger,
J. Shewchuck)

Select sno from sc where cno=’7′ and grade
not between 60and 90

Shape Diameter Function (SDF) segmentation
tool(L.
Shapira)

176.                      WHERE t1.C#= C# 

Deformation Transfer for Triangle
Meshes(horse,
camel, cat, lion, faces, flamingo, elephant) (R. Sumner, J. Popovic)

   1. 第二                           
2.6、4

farthest-point seeding for placement of streamlines in 2D vector fields
with
CGAL(A.
Mebarki)

212.            SELECT  distinct student.S#,student.Sname,SC.C#,SC.score 

Generalized Stratified Sampling Using the Hilbert
Curve(M.
Steigleder, M. McCool)

   
3.在实际的数据库管理系统中,对数据库的操作方式有_____命令交互、程序执行、窗口界面______等三种。

Skinning Mesh Animations
data(horse,
camel, elephant, chicken, snake ) (D. James, C. Twigg)

 

Texture Stitching by Estimating the Laplace-Beltrami Operator by
Restricting 3D
Functions(M.
Kazhdan)

    from sc

Fast 3D Line Segment—Triangle Intersection
Test(N.
Chirkov)

                    )

High Quality Hardware Line
Antialiasing(R.
Nelson)

225.        41、查询各个课程及相应的选修人数 

Disease reaction diffuse
demo(Cg,
on surface) (G. James, M. Harris)

228.          select distinct  A.S#,B.score from SC A  ,SC B where A.Score=B.Score and A.C# <>B.C# ; 

Last updated December 5, 2012.

       A.9              B.10             C.7                D.8

Elasticurves: Exploiting Stroke Dynamics and Inertia for the Real-time
Neatening of Sketched 2D
Curves(Y.
Thiel, K. Singh, R. Balakrishnan)

    SelectBJDM,count(*),avg(CJ) from SC
group by BJDM

Blossoming
softwarefor
analyzing polynomial functions (S. Mann, W. Liu)

    Selects.sno,sname from s,sc where
s.sno=sc.sno and cno=’C4′

VolPack(fast
volume rendering with shear/warp factorization) (P. Lacroute)

    本题也可以用嵌套做

Mixed Finite Elements for Variational Surface
Modeling(A.
Jacobson, E. Tosun, O. Sorkine, D. Zorin)

         
班级代码、学生姓名、去掉一个最低分后的平均成绩。

CMVS: Clustering Views for Multi-view
Stereo(Y.
Furukawa)

60. 
    where Course.C#=SC.C# and Course.T#= Teacher.T# and Tname=’叶平’; 

discrete Laplace-Beltrami operator on point
clouds[Page]
(C. Luo, I. Safa, Y. Wang)

141.                    LEFT JOIN sc AS T3 

Apparent Layer Operations for the Manipulation of Deformable
Objects(T.
Igarashi, J. Mitani)

                     ( Select cno from c
where cname=’数据库’ )

Vision

(5)检索至少选修两门课程的学生学号。
    SELECT DISTINCT X.SNO
    FROM SC X,SC Y
    WHERE X.SNO=Y.SNO AND X.CNO<>Y.CNO
Notice:对表SC进行自连接,X,Y是SC的两个别名。

Streaming Multigrid for Gradient-Domain Operations on Large
Images(M.
Kazhdan)

  1. 第一、2

Try searching this page for keywords like ‘segmentation’ or ‘PLY’.

79. 
                      FROM SC AS IL,Student AS IM 

Perceptuumglobal
illumination renderer (monte carlo ray tracing, motion blur, DOF, glossy
scattering, generalized BRDFS, progressive refinement, photon mapping)
(H. Ainsworth)

3.3 设有两个基本表R(A,B,C)和S(D,E,F),试用SQL查询语句表达下列关系代数表达式:
  (1)πA(R)(2)σB=’17’(R)(3)R×S(4))πA,FC=D(R×S))
(1)SELECT A FROM R
(2)SELECT * FROM R WHERE B=’17’
(3)SELECT A,B,C,D,E,F FROM R,S
(4)SELECT A,F FROM R,S WHERE R.C=S.D

shapeDNA:
compute accurate eigenvalues and eigenfunctions of the Laplace Beltrami
operator using higher order FEM with Dirichlet or Neumann boundary
conditions (cubic FEM, global mesh refinement, tangential smoothing,
PLY, SMF, OBJ, OFF, VTK, ASC3D, STL) (M. Reuter)

156.         

Triangle Strip
Compression(M.
Isenburg)

15、查询平均分最高的学生学号及平均分。

Machine Learning

    Select distinctsno from sc

An Improved Adjacency Data Structure for Fast Triangle
Stripping(P.
Reuter, J. Behr, M. Alexa)

3.5 试叙述SQL语言的关系代数特点和元组演算特点。
(P61-62)

Multi-frame 3D scans from video
depthmaps(triangulated
point clouds, OBJ format,100-2200 frames) (T. Weise, B. Leibe, L. Van
Gool)

               )

VLFeat(SIFT, MSER,
k-means, hiearchical k-means, agglomerative information bottleneck
(aib), quick shift) (A. Vedaldi, B. Fulkerson)

121.              FROM Student,SC  LEFT JOIN SC AS T1 

LUGPU(GPU
dense-matrix LU decomposition) (N. Galoppo, N. Govindaraju, M. Henson,
D. Manocha)

Select cno,cname from c where cname like
‘数据%’

Flo real-time 2D fluid simulation
demo(Cg
navier-stokes incompressible flow fixed no-slip boundaries) (G. James,
M. Harris)

 6、输出一张表格,所有成绩都不低于60分的每位学生对应一条记录,包括字段:

Blended Intrinsic
Maps(V.
Kim, Y. Lipman, T. Funkhouser)

114.              SC.S# As 学生学号, 

LQR: linear-quadratic regulator
controller(solves
Riccati differential equation) (J. Barbic)

88. 
19、按各科平均成绩从低到高和及格率的百分数从高到低顺序 

An Efficient Ray-Quadrilateral Intersection
Test(A.
Lagae, P Dutre)

              (Select * from sc where
sno=s.sno and cno=’C2′ )

Photorealistic Rendering

195.            from student 

QPoly: meshing scattered 3D
points(Y.
Ohtake)

96. 
    SELECT SUM(CASE WHEN C# =’001′ THEN score ELSE 0 END)/SUM(CASE C# WHEN ‘001’ THEN 1 ELSE 0 END) AS 企业管理平均分 

Intersection Test for Collision Detection in Particle
Systems(E.-A.
Karabassi, G. Papaioannou, T. Theoharis, A. Boehm)

SELECT *

 FROM  S

 WHERE  S# NOT IN

  (SELECT  *

      FROM SC  

      WHERE  SC.C#=C.C#)

 

或者

SELECT *

 FROM  S

 WHERE   NOT EXISTS

  (SELECT  *

      FROM SC  

      WHERE S.S#=C.S# AND 

SC.C#=C.C# )

 

interactive mesh
deformation(S.
Yoshizawa)

        from 商品表2

2D

(7)在SC中检索成绩为空值的学生学号和课程号。
    SELECT S#,C#
    FROM SC
    WHERE GRADE IS NULL

Fast Detection of the Geometric Form of Two-Dimensional Cubic Bézier
Curves(S.
Vincent)

           from 选课

DelIso: delaunay meshing of
isosurfaces(T.
Dey, J. Levine)

         ( Selectavg(grade) from
s,sc

SSBA: Simple Sparse Bundle
Adjustment(C.
Zach)

(9)求年龄大于所有女同学年龄的男学生姓名和年龄。
    SELECT SNAME,AGE
    FROM S AS X
    WHERE X.SEX=’男’ AND X.AGE>ALL (SELECT AGE FROM S AS Y WHERE
Y.SEX=’女’)
除法运算

DelPSC: delaunay mesh generation for surfaces, volumes and
complexes(T.
Dey, J. Levine)

注意本题也可以用连接做

raytracing quaternion julia sets on the
GPU(K.
Crane)

16、找出计算机系(JSJ)课程平均分最高的学生学号和姓名。

Polymender mesh
repairer(water-tightness,
closed surface repair, sharp features, signed volume generation) (T. Ju)

(5)检索学号比WANG同学大,而年龄比他小的学生姓名。
    SELECT X.SNAME
    FROM S AS X, S AS Y
    WHERE Y.SNAME=’WANG’ AND X.S#>Y.S# AND X.AGE<Y.AGE

sparseLM : Sparse Levenberg-Marquardt nonlinear least squares in
C/C++(M.
Lourakis)

    group by BJDM,BNXH,XSXM

ShapeAnnotatorsegmentation
tool (fitting primitives, barycentric/height/integral geodesic Morse,
Plumber, Lloyd
clustering)(Authors)

         
班级代码、学生姓名、最高成绩、平均成绩。

LightPack(light
field authoring and rendering)

                       )

2.5D Cartoon
Models(A.
Rivers, T. Igarashi, F. Durand)

119.              T4.score AS 数据库, 

SDFGen: generate grid-based signed distance field (level set) from
triangle
meshes(C.
Batty, R. Bridson)

 

Exact Catmull-Clark Subdivision
evaluation(and
mean-curvature minimization) (F. Hecht)

187.            Select count(Ssex) as 男生人数 from Student group by Ssex having Ssex=’男’; 

SuperCocone: efficient Delaunay meshing of large point
sets(T.
Dey, J. Hudson)

    连接:

Anti-Grain Geometry
Project(high-quality
and efficient 2D software rasterizer: subpixel antialiasing, arbitrary
polygons, gradients and gouraud shading, image filtering, bilinear,
bicubic, spline16, spline32, sinc, blackman, strokes with joins and
caps, dashed lines, head/tail markers, arrows, polygon clipping,
alpha-masking, arbitrary images as line patterns, perspective and
bilinear transformations, boolean polygon operations) (M. Shemanarev)

         ( SelectKno from FP

Modal
Matrix:
A class for modal matrix operations (assembly u=Uq, projection q = U^T
u) (J. Barbic)

    Selectsno,sname,sdept from
student

Physically Based Simulation and Animation of Gaseous Phenomena in a
Periodic
Domain[Page]
(A. Nealen)

197.        32、查询每门课程的平均成绩,结果按平均成绩升序排列,平均成绩相同时,按课程号降序排列 

Graphite(mesh
curvature,uniform
remeshing,mesh
repair,volume
meshing,manifold
harmonics,appearance-preserving
simplification,normal
mapping)
[documentation
wiki]
(Authors)

   
5.数据库系统中的四类用户分别为____数据库管理员、数据库设计员、应用程序员、终端用户_____。

3D Cellular Noise
function(M.
Pharr)

25. 
    from Student  

Manifold Mesh
Processing(non-manifold
repair, smoothing, normals from point clouds, curvature calculation,
local shape descriptors, Polymender manifold mesh from triangle soup,
mesh simplification) (C. Grimm)

254.        48、查询两门以上不及格课程的同学的学号及其平均成绩 

Fast 3D Triangle-Box Overlap
Testing(T.
Akenine-Moller)

83. 
        R.Score = (SELECT MIN(IR.score) 

Simulation / Animation

       A.1              B.2            
 C.3
               D.4

Bounded Biharmonc Weights for Real-Time
Deformation(A.
Jacobson, I. Baran, J. Popović, O. Sorkine)

       选课(学生号 char(7),课程号 char(4),成绩 int)

mesh-talent
(gauss-newton solver, (unknown) graph-based mesh deformation)
(Authors)

214.            WHERE SC.score>=70 AND SC.S#=student.S#; 

geodesic: multiple source/target exact geodesic algorithm for
triangular
mesh(unknown)

  (4)
UPDATES_GRADE
SETC_NUM=C_NUM+1
WHERES#=‘S4’
    不允许

Out-of-Core Compression for Gigantic Polygon
Meshes(M.
Isenburg, S. Gumhold)

          group byBJDM,BNXH,XSXM

Terraterrain
simplification (M. Garland)

相关文章

You can leave a response, or trackback from your own site.

Leave a Reply

网站地图xml地图