计算机图形设计方法
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
宽度: 1 一个像素宽 3 三个像素宽
模式:一般取0
settextstyle(文本字体,字体显示方向,字符大小)
文本字体: 0 位图字体 1 三重矢量字体 2 小号矢量字体 3 无衬线矢量字体 4 哥特矢量字体
字体显示方向: 0 从左向右 1 从下向上
2 字符大小:取值从0到10
Outtext(“字符串”) 从当前光标位置显示字 符
(0,0)
(640,0)
(0,480)
(640,480)
常用的绘图库函数:
Putpixel(x,y,颜色)
点
Line(x1,y1,x2,y2)
直线
Circle(x,y,半径R)
圆
Fillellipse(中心坐标x,y,x半径,y半径)填充椭圆
Bar(左上角坐标x1,y1,右下角坐标x2,y2) 填充矩形
for(x=0;x<=640;x=x+0.1) {
y=200+100*sin(x/10); putpixel(x,y,4); } getch(); closegraph(); }
课堂练习
1. 自已设计程序熟悉各种绘图函数。 2. 编程绘制成绩分布直方图
第二讲 物理运动方程的建立与叠代
一、方程的建立 利用牛顿运动定律建立运动方程 例1:建立抛体运动的运动学方程
二、方程的求解:用叠代法 方法:将微分方程看成差分方程
例:
#include <graphics.h> #include <math.h> #define PI 3.1415926 main() { float x0,y0,x,y,l,w; int gd=DETECT,gm; initgraph(&gd,&gm,"e:\\tc\\bgi"); x0=300;y0=250;x=300;y=150;l=100;w=0;
Outtextxy(x,y,”字符串”) 从x,y点显示字符
Gotoxy(x,y)
移动字符屏幕wk.baidu.com标
Moveto(x,y)
移动当前视图中的当前位置
5.结束:关闭图形文件
Closegraph()
三、动画的实现
方法1:利用清除屏幕和控制延时达到动画效果
delay(t):用于设置延迟执行时间。 Cleardevice():用于清屏
例:动态文本输出
源程序move1.c
#include <dos.h> main() {
int k,t,x,y; int gd=DETECT,gm; initgraph(&gd,&gm,"e:\\tc\\bgi"); x=150;y=50;
setbkcolor(9); setcolor(4); for(k=1;k<11;k++) { x=x-15;
填充设置
0 黑色 8 深灰 1 兰色 9 深兰 2 绿色 10 淡绿 3 青色 11 淡青 4 红色 12 淡红 5 洋红 13 淡洋红 6 棕色 14 黄色 7 淡灰 15 白色
Setlinestyle(线型,宽度,模式)
画线设置
线型: 0 实线 1 点线 2 中心线 3 破折线 4 自定义线型
y=y+15; settextstyle(1,0,k); cleardevice(); outtextxy(x,y,"thank you!"); delay(100000); } getch(); closegraph(); }
方法2:利用背景填充色重画达到动画效果
例2:旋转的线条。
源程序move2.c
四、画数学曲线 例3:画正弦函数曲线。
源程序function.c
#include <graphics.h> #include <math.h> #define PI 3.1415926 main() { float x,y; int gd=DETECT,gm; initgraph(&gd,&gm,"e:\\tc\\bgi"); setbkcolor(9);
计算机物理建模
制作:杨先卫
方法:#include 包含命令 <stdio.h>或”stdio.h” <math.h>或”math.h” <stdlib.h>或”stdlib.h” <graphics.h>或”graphics.h” <bios.h>或“bios.h”
注意:头文件具体包含哪些库函数,可直接打开 该头文件进行查找。在编程使用时,建议把上述 常用的头文件全部包含进来。
x v0t cos
y
v0t
s
in
1 2
gt2
例2:一行星质量为m,绕一质量为M的恒星运 动,列出其运动学方程。取B=GMm。
Bx a x m ( x 2 y 2 )3/2
By a y m ( x 2 y 2 )3/2
dv x dt
ax
dx dt v x
dv y dt
ay
dy dt v y
二、主函数main() 1.变量定义 2.图形初始化
Int gdrive=DETECT,gmode; Initgraph(&gdrive,&gmode,”e:\\wintc”); (以上为固定模式) 3.循环运算:用for循环和do-while循环来控制
4.结果输出:使用graphics.h中定义的库函数, 将数据以图像方式表现出来,达到直观简明的 效果。
Setbkcolor(颜色值)
背景颜色
Setcolor(颜色值)
画笔颜色
Setfillstyle(式样,颜色)
其中式样=0-12,颜色=0-15
0 以背景颜色填充 1 以实填充 2 以直线填充 3 以斜线填充(阴影线) 4 以粗斜线填充(粗阴影线) 5 以粗反斜线填充(粗阴影线) 6 以反斜线填充(阴影线) 7 以直方网格填充 8 以斜网格填充 9 以间隔点填充 10 以稀疏点填充 11 以密集点填充 12 以用户定义式样填充
setbkcolor(9); setcolor(4); setfillstyle(1,15); bar(100,0,500,480); line(x0,y0,x,y); do{
bar(100,0,500,480); w=w+1; x=x0+l*sin(w*PI/180); y=y0-l*cos(w*PI/180); line(x0,y0,x,y); delay(1000); }while(!kbhit()); closegraph(); }