1、给出几个坐标点,如何绘制平滑曲线?
只要平滑就行,最好我的程序能知道曲线的各个点,因为这个曲线我还有其他用途。2、如何用程序把单帧图片变成视频文件?
这里要求用程序,而不是视频处理元件
有好多图片,最好能压缩一下,要不可能播放不了我是个新手 刚来的 我已经帮助过两个人 还得了20分呢
希望大家互相帮助一下 元旦快乐呀
只要平滑就行,最好我的程序能知道曲线的各个点,因为这个曲线我还有其他用途。2、如何用程序把单帧图片变成视频文件?
这里要求用程序,而不是视频处理元件
有好多图片,最好能压缩一下,要不可能播放不了我是个新手 刚来的 我已经帮助过两个人 还得了20分呢
希望大家互相帮助一下 元旦快乐呀
解决方案 »
- 如何用Vba实现从sheet2中读取一列的数据到sheet1的下拉框
- 【VB字符串末尾连续Chr(0)问题】写一个程序,要写注册表键值,REG_MULTI_SZ类,怎么在字符串末尾加3个Chr(0)?求高人啊
- VB Form2上的Option1控制Form1上的Option1数组
- 关于MSHFlexGrid 插入数据的问题!!!
- 如何在datagrid控件里面添加check控件
- 为什么很小的数在MSFlexGrid里会变成零?
- 关于MSHFlexGrid显示日期的问题...请帮帮忙
- VB下处理中文字符的通用解决方案
- 大哥们帮忙! vb如何调用vc写的dll 中的函数
- 高手请进,我急。。。就就我。。。
- 高手帮忙!!打开一个Word文档,提示找不到工程或库!!
- 关于datagird 的问题
2 你可以用Windows AVI开头的那堆API来写AVI,也可以用Windows Media Format SDK来写WMV文件。
你好 谢谢你的回答 要文回答的好不好 好!精彩!你用最简短的语言表达了这么复杂的事情,其中可读性、逻辑性都很强,在下佩服,佩服,我想象中你一定是身穿披风,头带草帽,哦错了,是礼帽,的一个大侠,路见不平,八道香主。然后划下一个Z字,就消释在茫茫黑夜里。
最后我还有一句话想对你说,“我有点没听懂,你能在详细解释一下吗”
Point point1( 50, 200);
Point point2(100, 150);
Point point3(160, 180);
Point point4(200, 200);
Point point5(230, 150);
Point point6(220, 50);
Point point7(190, 70);
Point point8(130, 220);Point curvePoints[8] = {point1, point2, point3, point4,
point5, point6, point7, point8};
Point* pcurvePoints = curvePoints;GraphicsPath path;
path.AddClosedCurve(curvePoints, 8, 0.5);PathGradientBrush pthGrBrush(&path);
pthGrBrush.SetCenterColor(Color(255, 0, 0, 255));
Color colors[] = {Color(0, 0, 0, 255)};
INT count = 1;
pthGrBrush.SetSurroundColors(colors, &count);graphics.DrawClosedCurve(&pen, curvePoints, 8, 0.5);
graphics.FillPath(&pthGrBrush, &path);
http://www.programfan.com/article/showarticle.asp?id=2649
GLfloat ctlpoints[4][4][3]; // 控制点的存储空间
GLUnurbsObj *theNurb; // 指向NURBS曲面对象的指针
void InitSurface()
{
int u, v;
for (u = 0; u < 4; u++) {
for (v = 0; v < 4; v++) {
ctlpoints[u][v][0] = 2.0 * ((GLfloat)u - 1.5);
ctlpoints[u][v][1] = 2.0 * ((GLfloat)v - 1.5);
if ((u == 1 || u == 2) && (v == 1 || v == 2)) ctlpoints[u][v][2] = 6;
else ctlpoints[u][v][2] = -6;
}
}
}
void Init(void)
{
GLfloat mat_diffuse[] = {0.8, 0.6, 0.3, 1.0}; // 定义曲面材质
GLfloat mat_specular[] = {0.8, 0.6, 0.3, 1.0};
GLfloat mat_shininess[] = {45.0};
glClearColor(0.0, 0.0, 0.0, 1.0);
glMaterialfv(GL_FRONT, GL_DIFFUSE, mat_diffuse);
glMaterialfv(GL_FRONT, GL_SPECULAR, mat_specular);
glMaterialfv(GL_FRONT, GL_SHININESS, mat_shininess);
glEnable(GL_LIGHTING);
glEnable(GL_LIGHT0);
glDepthFunc(GL_LESS);
glEnable(GL_DEPTH_TEST);
glEnable(GL_AUTO_NORMAL);
glEnable(GL_NORMALIZE);
InitSurface(); // 初始化控制点
theNurb = gluNewNurbsRenderer(); // 创建一个NURBS曲面对象
// 修改NURBS曲面对象的属性
gluNurbsProperty(theNurb, GLU_SAMPLING_TOLERANCE, 5.0);
gluNurbsProperty(theNurb, GLU_DISPLAY_MODE, GLU_FILL);
}
void CALLBACK Display()
{
GLfloat knots[8] = {0.0, 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 1.0}; // NURBS曲面的控制向量
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); // 清屏
glPushMatrix(); // 入栈
glRotatef(30.0, -1.0, 0.0, 0.0); // 旋转变换
glScalef (0.5, 0.5, 0.5); // 缩放变换
gluBeginSurface(theNurb); // 开始曲面绘制
gluNurbsSurface(theNurb, 8, knots, 8, knots, 4 * 3, 3, &ctlpoints[0][0][0], 4, 4, GL_MAP2_VERTEX_3); // 定义曲面的数学模型,确定其形状
gluEndSurface(theNurb); // 结束曲面绘制
glPopMatrix(); // 出栈
glFlush(); // 强制刷新
}
http://www.codeproject.com/bitmap/createmovie.asp
#include "QTMovieFile.h"
CQTMovieFile movFile;
OnCreate(){
InitGraphicsWorld(hBackDC,hBackBitmap);
}
OnPaint(){
hdc = BeginPaint(hWnd, &ps);
//...Drawing Code onto the hBackBitmap
EndPaint(hWnd, &ps);
movFile.AppendNewFrame();
}
Private Declare Function PolyBezier Lib "gdi32" (ByVal hdc As Long, lppt As POINTAPI, ByVal cPoints As Long) As Long
下面我对第一个问题作一个简单的小结
首先,我荣幸的告诉大家第一个问题已经解决了(欢呼声)
我昨天忙活了一整天,总算是解决了
我也是刚刚整理出来一个眉目,不敢独享
我们来看一下我提的这个问题,“1、给出几个坐标点,如何绘制平滑曲线? 只要平滑就行,最好我的程序能知道曲线的各个点”
这个问题有两点要求:
1、给出几个坐标点,如何绘制平滑曲线
2、要求能够反算,简单点说就是我给出任何一个x坐标要求能够给出对应曲线上的y值(我也不知道术语是什么)
如果我的要求只有第一点,那么上面各位朋友告诉我的都没有问题。但是大家都没有考虑问题的第二点,无论是蒋晟兄的NURBS曲面对象,还是VBToy同志的画Bezie曲线函数,都是能把曲线画出来,而不能进行反算。
要想解决第二点我觉得没有什么办法,只有自己动手把曲线画出来,因为只有曲线是自己画的,曲线上的各个点你才能知道。
所以我又上网搜索曲线的画法,我找到了两种,三次bezier曲线和样条插值曲线,这两种曲线有一定的差别,我只知道一点,就是对于bezier曲线刚开始给出的几点坐标只是控制点,而对于样条插值曲线那几点坐标是通过点(估计专业的朋友看到我写的非要骂死我不可)。因此我选择了样条插值曲线来画我的曲线。
问题解决了,但是颇有感慨。
1、在上学的时候我以为书本上的东西没有用,整天骂教委的人,现在才发现当学到一定程度之后,什么vb、vc都不是那么重要了,说白了它们都只是工具而已,就好比我这个问题其实是一个数学问题,认你vb在怎么精通也没有用。一句话,如果计算机不和相关行业联系起来,就是狗屁。
2、一直以来,我们大家都是在使用老盖提供给我们的东西进行编程,久而久之大家都养成了一个习惯,就是人家提供什么,我们用什么。人家用传说中的一句封装就把大家弄的一点脾气都没有了,我也是这样,只要知道这api函数的功能是什么就行了,至于他是怎么实现的关我屁事。大家不觉得很可怕吗?
奶奶个熊的,管我什么事,老子上一天班拿一份钱,人生苦短,来来来,喝 喝...
免费的学习、交流、源码、工具下载网站,欢迎大家访问!
http://www.j2soft.cn/
借用 jiangsheng(蒋晟.Net) 那句 2 你可以用Windows AVI开头的那堆API来写AVI,也可以用Windows Media Format SDK来写WMV文件。你可以下载Windows Media Format SDK看看啊,你的英文最好过关