贝塞尔曲线
TIN 三角网的生成
三角网的概念
三角网是由一系列连续三角形构成的网状的平面控制图形,是三角测量中布设连续三角形的两种主要扩展形式,同时向各方向扩展而构成网状,优点为点位分布均匀、各点之间互相牵制、图形强度较高,缺点是扩展较缓慢。
三角网是实现地形三维可视化,数字地面模型(Digital Terrain Model,简称 DTM)是一种很有效的途径。DTM 主要是由栅格和不规则三角网(Triangulated Irregular Network,简称 TIN )两种数据格式来表示,相比于栅格 TIN 具有许多优点,几乎能适用于任何复杂的地形,所以 TIN 是 DTM 常采用的一种格式。
三角网的特性
- TIN 是惟一的;
- 力求最佳的三角形几何形状,每个三角形尽量接近等边形状;
- 保证最邻近的点构成三角形,即三角形的边长之和最小;
- 最小角最大,即在所有的三角网中 Delaunay 三角网的最小角是相对最大的。狄洛尼三角网满足以上三个条件,其定义为 : 是相互邻接
立体多面体旋转
立体多面体旋转说明
思路
以前写过关于 TIN 三角网的程序,若要了解它的算法,可以去查看TIN三角网的生成 ,里面有相关介绍。很多东西都是先想到,然后才去想办法去做。以前有天圆地方的说法,人们认为天是圆一个球形,而地是一个方方正正的平面。这就是人们在认知的一个过程。TIN 三角网往小了讲,是分布在一个平面上,往大了讲,是分布在一个球面上。
解决方案
人之所以能够发展,是因为人一直在学习,在思考,在想象,在创新。TIN 三角网是在一个平面上进行拓展的,两点间的距离可以通过 x 与 y 进行推导,空间中的两点间的距离可以通过 x y z 进行推导,要实现 TIN 三角网立体化,我需要做的就是将平面的坐标拓展为立体坐标,TIN 三角网里面比较核心的算法就是通过三个点确定圆心,很多人觉得这个很简单,不屑于去思考,认为不就是做两个中垂线,交点就是圆心。从来不去实事求是的列公式,不实践就永远发现不了问题,还洋洋得意,自以为是。如果解决了平面三点确定圆心的问题,接下就需要创新的就是空间三点确定圆心。我们学的高数,线性代数,以
...实现水波纹显示效果(by 豪)
当鼠标滑过时,可以在屏幕上实现漂亮的水波纹效果。
执行效果如下:
源代码如下:
(注意,请确保 loadimage 函数里面加载的图片路径存在)
/********************************************************
* 程序名称:实现水波纹显示 *
* 编译环境:Visual C++ 6.0 / 2010,EasyX_20210730 *
* 作 者:豪 (QQ: 415051674) *
* 核心算法:参考网上算法 *
* 发布日期:2013/3/20 *
********************************************************/
#include <graphics.h>
#include <conio.h>
#include <stdio.h>
...
三辆行驶的小车(by E_SHARE)
本程序模拟了以不同速度行驶的三辆小车。
源代码如下:
////////////////////////////////////////////
// 程序名称:3 辆行驶的小车
// 编译环境:Visual C++ 6.0,EasyX_20120603(beta)
// 程序编写:E_SHARE <501748772@qq.com>
// 编写时间:2012-6-26
////////////////////////////////////////////
#include <graphics.h>
#include <conio.h>
#include <stdlib.h>
#include <stdio.h>
// 声明需要使用的函数
void carstart(int x, int y, int z);
void drawbus();
void init();
// 定义全局变量
IMAGE img;
/////////
...
多个小球在方框内的碰撞运动(by 可可)
本程序模拟了多个小球在方框内的碰撞运动。
源代码如下:
///////////////////////////////////////////////////
// 程序名称:多个小球在方框内的碰撞运动
// 编译环境:Visual C++ 6.0,EasyX 2013冬至版
// 作 者:可可
// 最后修改:2014-03-18
//
#include <graphics.h>
#include <conio.h>
#include <math.h>
#define XN 640
#define YN 480 // 设置图形窗口的大小
#define N 40 // 设置球的个数,最多 90 个
#define V 20 // 设置球的速度
// 画出一个球
void Ball(int x, int y)
{
fillcircle(x, YN - y, 20); // 转换成常用的坐标
}
// 判定是否发
...
图片转化为 ASCII 图,就是很多字符组成图片的那种(by Geodesic)
本程序实现将图片转换为 ascii 字符的效果。
使用说明:
支持 bmp / jpg / gif / emf / wmf / ico 类型的图片。gif 类型的图片仅加载第一帧,不支持透明。我只测试过jpg格式。
请把要转换的图片复制到 exe 程序所在的文件夹,并确保图片名中没有中文等无法输入的字符。
运行 exe 文件即可转换。
因为 txt 文件的行距,字符间距等原因,为了达到最好效果,请先把图片的高度压缩到原来的 1/2(宽度不变)。
转换根据图片的实际大小操作,如果图片过大,请修改图片尺寸,或者手工修改 txt 中字符的尺寸,以便能够完全显示。
这仅仅是一个 demo,里边存在不少问题,比如 ASCII 灰度实际上是按照 8*16 像素扫描的;实际使用的 ASCII 灰度值我修改过,并非原来的灰度等等。
为了更精确的控制字体的尺寸,间距,行距,html 文件是个不错的选择,如果你愿意的话,你可以选择完善这个 demo,做成一个很实用的小小的软件,但是让一个东
...背井离乡(by 萌新)
上大学一学期了,有点想家。
突发奇想,花了一天的时间,用 vc++6.0 写完了这个程序。
代码写的不怎么样,希望大家不要太严格 QAQ
执行效果截图:
完整源代码、背景音乐请【点击这里下载】。
完整代码如下(记得附上背景音乐文件):
#include <graphics.h>
#include <stdlib.h>
#include <conio.h>
#include <time.h>
#include <stdio.h>
#pragma comment(lib,"Winmm.lib")
#define WATERSPEED 12.0 // 雨点速度
#define BUILDINGNUM 30 // 建筑物数量
#define RAINNUM 300 // 雨点数量
#define C
...