SDL系列之 - 用画直线的方法来画正弦曲线

线段长度无限短后就成为点,所以,现在让我们用画直线的方法来画正弦曲线吧

 1 #include <SDL.h>
 2 #include <stdlib.h>
 3 #include <string.h>
 4 #include <math.h>
 5 #include "SDL_draw.h"           //包含SDL_draw库的头文件
 6 int main()
 7 {
 8         int i;
 9         double t;
10         double x,y;
11         double x0=320, y0=240;
12         Uint32 screen_color;
13         SDL_Surface *screen;    //一个屏幕指针
14         if(SDL_Init(SDL_INIT_VIDEO) < 0){       //初始化视频子系统失败
15                 fprintf(stderr,"无法初始化:%s\n",SDL_GetError());       //不能用printf(),因为没有包含stdio.h头文件
16                 exit(1);
17         }
18         //设置视频模式
19         screen=SDL_SetVideoMode(640,480,16,SDL_SWSURFACE);
20         if(screen==NULL){
21                 fprintf(stderr,"无法设置视频模式:%s\n",SDL_GetError());
22                 exit(1);
23         }
24         atexit(SDL_Quit);       //退出
25
26         //画直线,从点(240,180)到点(400,300),颜色为白色
27         Draw_Line(screen,240,180,400,300,SDL_MapRGB(screen->format, 255,255,255));
28         //画直线,从点(400,180)到点(240,300),颜色为蓝色
29         Draw_Line(screen,400,180,240,300,SDL_MapRGB(screen->format, 0,0,255));
30         for(i=0;i<640;i+=2){
31                 x=240-120*sin(3.14*i/180);
32                 i+=2;
33                 y=240-120*sin(3.14*i/180);
34                 Draw_Line(screen,i-2,x,i,y,SDL_MapRGB(screen->format, 0,0,255));
35                 SDL_Delay(5);                   //停留5毫秒
36                 SDL_UpdateRect(screen,0,0,0,0);         //更新整个屏幕
37         }
38         SDL_UpdateRect(screen,0,0,0,0);         //更新整个屏幕
39         SDL_Delay(3000);                        //停留5秒
40         return 0;
41 }
时间: 2024-10-22 06:47:26

SDL系列之 - 用画直线的方法来画正弦曲线的相关文章

几种画直线的方法-孙鑫C++笔记

// HDC画直线 CPoint m_ptOrigin ; void CDrawView::OnLButtonDown(UINT nFlags, CPoint point) { m_ptOrigin = point; CView::OnLButtonDown(nFlags, point); } void CDrawView::OnLButtonUp(UINT nFlags, CPoint point) { HDC hdc; hdc = ::GetDC(m_hWnd); MoveToEx(hdc,

[转]html5 Canvas画图教程(2)—画直线与设置线条的样式如颜色/端点/交汇点

在学画画的时候,线条是最基本的了,而线条的连接可以组成任何图形.在Canvas中也是如此. 在开始之前我们先拿出画布和画笔: 代码如下: var cvs = document.getElementById('cvs'); //画布 var ctx = cvs.getContext('2d'); // 画笔 我们画画的时候,落笔点是不固定的,随时都会变.canvas虽然不是通过手来决定落笔点,但也有一个方法,就是moveTo.moveTo的作用相当于把笔尖提离画布,然后移动到指定的点(即坐标).

ios画直线原理

画直线方法1: #pragma mark 画直线-比较简便的画法void drawLineEasy(){    CGContextRef ctx = UIGraphicsGetCurrentContext();    CGContextMoveToPoint(ctx, 0, 0);    CGContextAddLineToPoint(ctx, 100, 100);    CGContextStrokePath(ctx);} 画直线方法2: #pragma mark 画一条直线void draw

有了这个方法,画什么图形都可以

原文出处:Android利用canvas画各种图形(点.直线.弧.圆.椭圆.文字.矩形.多边形.曲线.圆角矩形) public class DrawView extends View { public DrawView(Context context) { super(context); } @Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); /* * 方法 说明 drawRect 绘制矩形 drawCir

①使用鼠标随意画线、②画直线(显示直线轨迹)、③画直线(不显示直线轨迹)

①PaintJFrame类 package drawLine; import java.awt.*; import java.awt.event.*; import javax.swing.*; public class PaintJFrame extends JFrame { public PaintJFrame() { super("使用鼠标随意画线"); this.setBounds(400,300,400,300); this.setDefaultCloseOperation(

Maven入门系列(二)--设置中央仓库的方法

原文地址:http://www.codeweblog.com/maven入门系列-二-设置中央仓库的方法/ Maven仓库放在我的文档里好吗?当然不好,重装一次电脑,意味着一切jar都要重新下载和发布. 下载的地址是中央仓库mvnrepository.com,当然,全球很多个仓库. 资源的坐标简称GVA 那么,现在如何修改maven的本地仓库路径呢? 关键在于maven文件夹的config下的settings.xml(E:\IDE\apache-maven-3.3.1\conf\settings

【开源】OSharp框架解说系列(3):扩展方法

〇.前言 扩展方法使你能够向现有类型“添加”方法,而无需创建新的派生类型.重新编译或以其他方式修改原始类型. 扩展方法是一种特殊的静态方法,但可以像扩展类型上的实例方法一样进行调用. 对于用 C# 和 Visual Basic 编写的客户端代码,调用扩展方法与调用在类型中实际定义的方法之间没有明显的差异. 最常见的扩展方法是 LINQ 标准查询运算符,它将查询功能添加到现有的 System.Collections.IEnumerable 和 System.Collections.Generic.

Bresenham快速画直线算法

现在的计算机的图像的都是用像素表示的,无论是点.直线.圆或其他图形最终都会以点的形式显示.人们看到屏幕的直线只不过是模拟出来的,人眼不能分辨出来而已.那么计算机是如何画直线的呢,其实有比较多的算法,这里讲的是Bresenham的算法,是光栅化的画直线算法.直线光栅化是指用像素点来模拟直线,比如下图用蓝色的像素点来模拟红色的直线 给定两个点起点P1(x1, y1), P2(x2, y2),如何画它们直连的直线呢,即是如何得到上图所示的蓝色的点.假设直线的斜率0<k>0,直线在第一象限,Brese

Html5新特性 &lt;canvas&gt;画板画直线

 下面例子为用canvas标签画多条直线 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta ht