第三讲:动态画圆

<html>
	<head>
		<title>初识canvas</title>
		<script src="../js/jscex.jscexRequire.min.js" type="text/javascript"></script>
	</head>
	
	<body>
		<canvas id="mc" width="900px" height="440px" style="border:1px solid #c3c3c3;background-color:#fff;border-radius:10px;">
		</canvas>
		<script type="text/javascript">
			var canvas = document.getElementById('mc');
			var ctx = canvas.getContext('2d');	
			var x = 150;
			var y = 150;
			var r = 100;
			//画出指定的图像
			var somethingAsync = eval(Jscex.compile("async",function(){
				ctx.moveTo(x - r,y);
				for(var i = x - r ; i< x+r+1;i++){
					$await(Jscex.Async.sleep(50));
					var tempY = Math.pow(r*r-(x-i)*(x-i),1/2);
					ctx.lineTo(i,y+tempY);
					ctx.stroke();
				}
				ctx.moveTo(x-r,y);
				for(var i = x - r ; i< x+r+1;i++){
					$await(Jscex.Async.sleep(50));
					var tempY = Math.pow(r*r-(x-i)*(x-i),1/2);
					ctx.lineTo(i,y-tempY);
					ctx.stroke();
				}
				
			}))
			
			
			somethingAsync().start();
			
		</script>
	</body>
</html>

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是使用OpenGL画圆的C++代码示例: ```c++ #include <GL/glut.h> #include <cmath> // 定义圆心坐标和半径 GLfloat x = 0.0f; GLfloat y = 0.0f; GLfloat radius = 0.5f; void drawCircle() { // 设置画笔颜色 glColor3f(1.0f, 1.0f, 1.0f); // 绘制圆形 glBegin(GL_TRIANGLE_FAN); glVertex2f(x, y); // 圆心点 for (int i = 0; i <= 360; i++) { GLfloat angle = i * 3.1415926f / 180.0f; GLfloat dx = radius * cosf(angle); GLfloat dy = radius * sinf(angle); glVertex2f(x + dx, y + dy); } glEnd(); } void display() { // 清除颜色缓冲区 glClear(GL_COLOR_BUFFER_BIT); // 绘制圆形 drawCircle(); // 刷新显示缓冲区 glutSwapBuffers(); } int main(int argc, char **argv) { // 初始化GLUT库 glutInit(&argc, argv); // 创建窗口 glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGBA); glutInitWindowSize(400, 400); glutCreateWindow("Circle"); // 设置窗口背景颜色 glClearColor(0.0f, 0.0f, 0.0f, 1.0f); // 设置投影矩阵 glMatrixMode(GL_PROJECTION); glLoadIdentity(); glOrtho(-1.0, 1.0, -1.0, 1.0, -1.0, 1.0); // 注册回调函数 glutDisplayFunc(display); // 进入主循环 glutMainLoop(); return 0; } ``` 该代码使用OpenGL的`glBegin()`和`glEnd()`函数绘制一个由多个三角形组成的圆形。其中,圆形的每个顶点坐标是通过圆心坐标、半径和角度计算得到的。圆形的绘制通过`drawCircle()`函数实现。在`main()`函数中,使用`glutInit()`初始化GLUT库,创建窗口并设置窗口背景颜色,设置投影矩阵,注册回调函数,并进入主循环。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值