这个一个VC中画圆的代码(可能你还需要配置编译环境):
#include <GL/gluth> // 设置头文件
#include <stdlibh>
#include <mathh>
/void setPixel ( int x, int y)
{
glBegin ( GL_POINTS);
glVertex2i (x, y);
glEnd ();
}
inline int round (const float a ) { return int (a + 05); }
void lineDDA (int x0, int y0, int xEnd, int yEnd)
{
int dx = xEnd - x0, dy = yEnd - y0, steps, k;
float xIncrement, yIncrement, x = x0, y = y0;
if (fabs (dx) > fabs (dy))
steps = fabs (dx);
else
steps = fabs (dy);
xIncrement = float (dx) / float (steps);
yIncrement = float (dy) / float (steps);
setPixel (round (x), round (y));
for (k = 0; k < steps; k++) {
x += xIncrement;
y += yIncrement;
setPixel (round (x), round (y));
}
} /
class screenPt
{
private:
GLint x,y;
public:
screenPt()
{
x=y=0;
}
void setCoords (GLint xCoordValue,GLint yCoordValue)
{
x=xCoordValue;
y=yCoordValue;
}
GLint getx() const{
return x;
}
GLint gety() const{
return y;
}
void incrementx()
{
x++;
}
void decrementy()
{
y--;
}
};
void setPixel(GLint xCoord,GLint yCoord)
{
glBegin (GL_POINTS);
glVertex2i(xCoord,yCoord);
glEnd();
}
void circleMidpoint(GLint xc,GLint yc,GLint radius)
{
screenPt circPt;
GLint p=1-radius; //决策参数
circPtsetCoords(0,radius);
void circlePlotPoints (GLint ,GLint,screenPt);
circlePlotPoints(xc,yc,circPt);
while(circPtgetx()<circPtgety())
{
circPtincrementx();
if(p<0)
p += 2circPtgetx() + 1;
else
{
circPtdecrementy();
p += 2(circPtgetx() - circPtgety()) + 1;
}
circlePlotPoints(xc,yc,circPt);
}
}
void circlePlotPoints(GLint xc,GLint yc,screenPt circPt)
{
setPixel (xc + circPtgetx(),yc + circPtgety());
setPixel (xc - circPtgetx(),yc + circPtgety());
setPixel (xc + circPtgetx(),yc - circPtgety());
setPixel (xc - circPtgetx(),yc - circPtgety());
setPixel (xc + circPtgety(),yc + circPtgetx());
setPixel (xc - circPtgety(),yc + circPtgetx());
setPixel (xc + circPtgety(),yc - circPtgetx());
setPixel (xc - circPtgety(),yc - circPtgetx());
}
void init (void) // 初始化函数
{
glClearColor (10, 10, 10, 00); // 设置清屏的颜色(Red,green,blue),但不能让该颜色在显示窗上
// 出现
glMatrixMode (GL_PROJECTION); // 设置投影矩阵
glLoadIdentity (); // 单位化上述投影矩阵
gluOrtho2D (00, 8000, 00, 6000); // 设置具体投影 矩阵为平面正交投影 4/3
}
void lineSegment (void) //绘图函数
{
glClear (GL_COLOR_BUFFER_BIT); // 按glClearColor (10, 10, 10, 00);指定的颜色刷新颜色
glColor3f (10, 00, 00); //设置前景色,即画图的颜色
circleMidpoint(400,300,200);
glFlush ( ); // 在每一画面或场景的结尾处调用,强制前面发出的OpenGL 命令开始执行
}
void main (int argc, char argv) // OpenGL 绘图主函数
{
glutInit (&argc, argv); // 初始化GLUT 库
glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB); // 设置 显示模式
glutInitWindowPosition (50, 100); // 窗口左上角像素坐标
glutInitWindowSize (800, 600); // 设置设备显示窗口大小 4/3
glutCreateWindow ("An Example OpenGL Program"); // 创建一个窗口,参数为窗口的标题
init ( ); // 函数调用
glutDisplayFunc (lineSegment); // 绘制当前窗口
glutMainLoop ( ); //通常用于程序的结尾,表示开始运行程序显示出所有创建的窗口
}
我只能说你好无聊啊
%方法一,改变图像本身
x=meshgrid(-10:05:10)
y=x';
z=sin((x^2+y^2)^(1/2))(x^2+y^2)^(1/2) ;
h=surf(x,y,z)
axis([-15,15,-15 15,-15,15]);
try
while 1
rotate(h,[0 0 1],1)
drawnow
end
end
%方法2,改变视角
x=meshgrid(-10:05:10)
y=x';
z=sin((x^2+y^2)^(1/2))(x^2+y^2)^(1/2) ;
surf(x,y,z)
h=gca;
axis vis3d
try
for i=0:inf
view(h,i,30)
drawnow
end
end
在 Adobe Premiere Pro 中使两个图形运动速度一样,可以使用“速率持续时间”效果。你可以按照以下步骤 *** 作:
将需要匹配运动速度的两个图形文件拖到 Premiere Pro 程序中,并拖动它们到时间轴上相邻的位置;
选中其中一个图形,然后打开“速率持续时间”效果面板。可以通过单击“窗口”菜单中的“效果控制”来访问该面板;
在“速率持续时间”效果面板中,你可以选择一个“百分比”值来改变选定剪辑的速率。为了让两个图形运动速度一样,你要记录下此时这个百分比值;
选中另外一个图形,并同样添加“速率持续时间”效果。将这个效果的“百分比”值设置为与第一个图形相同的值。
通过这些步骤,你就可以确保这两个图形的运动速度相同了。
以上就是关于跪求关于c程序源代码,运行后的效果为动态图形,比如圆啊,三角形之类的,最好附上代码的解释全部的内容,包括:跪求关于c程序源代码,运行后的效果为动态图形,比如圆啊,三角形之类的,最好附上代码的解释、MATLAB动画制作---图形的怎样实现图像的旋转求高人指点!谢谢、pr怎么让两个图形运动速度一样等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)