精华内容
下载资源
问答
  • 用delphi做的一个绘图程序,可以画线,画矩形,画圆,设置画笔等··
  • 软件绘图 术语绘图通常在Core Animation的上下文中指代软件绘图(意即:不由GPU协助的绘图)。在iOS中,软件绘图通常是由Core Graphics框架完成来完成。但是,在一些必要的情况下,相比Core Animation和OpenGL,...

    软件绘图

    术语绘图通常在Core Animation的上下文中指代软件绘图(意即:不由GPU协助的绘图)。在iOS中,软件绘图通常是由Core Graphics框架完成来完成。但是,在一些必要的情况下,相比Core Animation和OpenGL,Core Graphics要慢了不少。

    软件绘图不仅效率低,还会消耗可观的内存。CALayer只需要一些与自己相关的内存:只有它的寄宿图会消耗一定的内存空间。即使直接赋给contents属性一张图片,也不需要增加额外的照片存储大小。如果相同的一张图片被多个图层作为contents属性,那么他们将会共用同一块内存,而不是复制内存块。

    但是一旦你实现了CALayerDelegate协议中的-drawLayer:inContext:方法或者UIView中的-drawRect:方法(其实就是前者的包装方法),图层就创建了一个绘制上下文,这个上下文需要的大小的内存可从这个算式得出:图层宽*图层高*4字节,宽高的单位均为像素。对于一个在Retina iPad上的全屏图层来说,这个内存量就是 2048*1526*4字节,相当于12MB内存,图层每次重绘的时候都需要重新抹掉内存然后重新分配。

    软件绘图的代价昂贵,除非绝对必要,你应该避免重绘你的视图。提高绘制性能的秘诀就在于尽量避免去绘制。

    矢量图形

    我们用Core Graphics来绘图的一个通常原因就是只是用图片或是图层效果不能轻易地绘制出矢量图形。矢量绘图包含一下这些:

    • 任意多边形(不仅仅是一个矩形)
    • 斜线或曲线
    • 文本
    • 渐变

    举个例子,清单13.1 展示了一个基本的画线应用。这个应用将用户的触摸手势转换成一个UIBezierPath上的点,然后绘制成视图。我们在一个UIView子类DrawingView中实现了所有的绘制逻辑,这个情况下我们没有用上view controller。但是如果你喜欢你可以在view controller中实现触摸事件处理。图13.1是代码运行结果。

    清单13.1 用Core Graphics实现一个简单的绘图应用

    #import "DrawingView.h"
    
    @interface DrawingView ()
    
    @property (nonatomic, strong) UIBezierPath *path;
    
    @end
    
    @implementation DrawingView
    
    - (void)awakeFromNib
    {
        //create a mutable path
        self.path = [[UIBezierPath alloc] init];
        self.path.lineJoinStyle = kCGLineJoinRound;
        self.path.lineCapStyle = kCGLineCapRound;
        
        self.path.lineWidth = 5;
    }
    
    - (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
    {
        //get the starting point
        CGPoint point = [[touches anyObject] locationInView:self];
    
        //move the path drawing cursor to the starting point
        [self.path moveToPoint:point];
    }
    
    - (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
    {
        //get the current point
        CGPoint point = [[touches anyObject] locationInView:self];
    
        //add a new line segment to our path
        [self.path addLineToPoint:point];
    
        //redraw the view
        [self setNeedsDisplay];
    }
    
    - (void)drawRect:(CGRect)rect
    {
        //draw path
        [[UIColor clearColor] setFill];
        [[UIColor redColor] setStroke];
        [self.path stroke];
    }
    @end

    图13.1

    图13.1 用Core Graphics做一个简单的『素描』 这样实现的问题在于,我们画得越多,程序就会越慢。因为每次移动手指的时候都会重绘整个贝塞尔路径(UIBezierPath),随着路径越来越复杂,每次重绘的工作就会增加,直接导致了帧数的下降。看来我们需要一个更好的方法了。 Core Animation为这些图形类型的绘制提供了专门的类,并给他们提供硬件支持(第六章『专有图层』有详细提到)。CAShapeLayer可以绘制多边形,直线和曲线。CATextLayer可以绘制文本。CAGradientLayer用来绘制渐变。这些总体上都比Core Graphics更快,同时他们也避免了创造一个寄宿图。 如果稍微将之前的代码变动一下,用CAShapeLayer替代Core Graphics,性能就会得到提高(见清单13.2).虽然随着路径复杂性的增加,绘制性能依然会下降,但是只有当非常非常浮躁的绘制时才会感到明显的帧率差异。 清单13.2 用CAShapeLayer重新实现绘图应用

    #import "DrawingView.h"
    #import <QuartzCore/QuartzCore.h>
    
    @interface DrawingView ()
    
    @property (nonatomic, strong) UIBezierPath *path;
    
    @end
    
    @implementation DrawingView
    
    + (Class)layerClass
    {
        //this makes our view create a CAShapeLayer
        //instead of a CALayer for its backing layer
        return [CAShapeLayer class];
    }
    
    - (void)awakeFromNib
    {
        //create a mutable path
        self.path = [[UIBezierPath alloc] init];
    
        //configure the layer
        CAShapeLayer *shapeLayer = (CAShapeLayer *)self.layer;
        shapeLayer.strokeColor = [UIColor redColor].CGColor;
        shapeLayer.fillColor = [UIColor clearColor].CGColor;
        shapeLayer.lineJoin = kCALineJoinRound;
        shapeLayer.lineCap = kCALineCapRound;
        shapeLayer.lineWidth = 5;
    }
    
    - (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
    {
        //get the starting point
        CGPoint point = [[touches anyObject] locationInView:self];
    
        //move the path drawing cursor to the starting point
        [self.path moveToPoint:point];
    }
    
    - (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
    {
        //get the current point
        CGPoint point = [[touches anyObject] locationInView:self];
    
        //add a new line segment to our path
        [self.path addLineToPoint:point];
    
        //update the layer with a copy of the path
        ((CAShapeLayer *)self.layer).path = self.path.CGPath;
    }
    @end

    脏矩形

    有时候用CAShapeLayer或者其他矢量图形图层替代Core Graphics并不是那么切实可行。比如我们的绘图应用:我们用线条完美地完成了矢量绘制。但是设想一下如果我们能进一步提高应用的性能,让它就像一个黑板一样工作,然后用『粉笔』来绘制线条。模拟粉笔最简单的方法就是用一个『线刷』图片然后将它粘贴到用户手指碰触的地方,但是这个方法用CAShapeLayer没办法实现。 我们可以给每个『线刷』创建一个独立的图层,但是实现起来有很大的问题。屏幕上允许同时出现图层上线数量大约是几百,那样我们很快就会超出的。这种情况下我们没什么办法,就用Core Graphics吧(除非你想用OpenGL做一些更复杂的事情)。 我们的『黑板』应用的最初实现见清单13.3,我们更改了之前版本的DrawingView,用一个画刷位置的数组代替UIBezierPath。图13.2是运行结果 清单13.3 简单的类似黑板的应用

    #import "DrawingView.h"
    #import <QuartzCore/QuartzCore.h>
    #define BRUSH_SIZE 32
    
    @interface DrawingView ()
    
    @property (nonatomic, strong) NSMutableArray *strokes;
    
    @end
    
    @implementation DrawingView
    
    - (void)awakeFromNib
    {
        //create array
        self.strokes = [NSMutableArray array];
    }
    
    - (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
    {
        //get the starting point
        CGPoint point = [[touches anyObject] locationInView:self];
    
        //add brush stroke
        [self addBrushStrokeAtPoint:point];
    }
    
    - (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
    {
        //get the touch point
        CGPoint point = [[touches anyObject] locationInView:self];
    
        //add brush stroke
        [self addBrushStrokeAtPoint:point];
    }
    
    - (void)addBrushStrokeAtPoint:(CGPoint)point
    {
        //add brush stroke to array
        [self.strokes addObject:[NSValue valueWithCGPoint:point]];
    
        //needs redraw
        [self setNeedsDisplay];
    }
    
    - (void)drawRect:(CGRect)rect
    {
        //redraw strokes
        for (NSValue *value in self.strokes) {
            //get point
            CGPoint point = [value CGPointValue];
    
            //get brush rect
            CGRect brushRect = CGRectMake(point.x - BRUSH_SIZE/2, point.y - BRUSH_SIZE/2, BRUSH_SIZE, BRUSH_SIZE);
    
            //draw brush stroke    
            [[UIImage imageNamed:@"Chalk.png"] drawInRect:brushRect];
        }
    }
    @end

    图13.2 图13.2 用程序绘制一个简单的『素描』 这个实现在模拟器上表现还不错,但是在真实设备上就没那么好了。问题在于每次手指移动的时候我们就会重绘之前的线刷,即使场景的大部分并没有改变。我们绘制地越多,就会越慢。随着时间的增加每次重绘需要更多的时间,帧数也会下降(见图13.3),如何提高性能呢? 图13.3 图13.3 帧率和线条质量会随时间下降。

    为了减少不必要的绘制,Mac OS和iOS设备将会把屏幕区分为需要重绘的区域和不需要重绘的区域。那些需要重绘的部分被称作『脏区域』。在实际应用中,鉴于非矩形区域边界裁剪和混合的复杂性,通常会区分出包含指定视图的矩形位置,而这个位置就是『脏矩形』。 当一个视图被改动过了,TA可能需要重绘。但是很多情况下,只是这个视图的一部分被改变了,所以重绘整个寄宿图就太浪费了。但是Core Animation通常并不了解你的自定义绘图代码,它也不能自己计算出脏区域的位置。然而,你的确可以提供这些信息。 当你检测到指定视图或图层的指定部分需要被重绘,你直接调用-setNeedsDisplayInRect:来标记它,然后将影响到的矩形作为参数传入。这样就会在一次视图刷新时调用视图的-drawRect:(或图层代理的-drawLayer:inContext:方法)。 传入-drawLayer:inContext:CGContext参数会自动被裁切以适应对应的矩形。为了确定矩形的尺寸大小,你可以用CGContextGetClipBoundingBox()方法来从上下文获得大小。调用-drawRect()会更简单,因为CGRect会作为参数直接传入。 你应该将你的绘制工作限制在这个矩形中。任何在此区域之外的绘制都将被自动无视,但是这样CPU花在计算和抛弃上的时间就浪费了,实在是太不值得了。 相比依赖于Core Graphics为你重绘,裁剪出自己的绘制区域可能会让你避免不必要的操作。那就是说,如果你的裁剪逻辑相当复杂,那还是让Core Graphics来代劳吧,记住:当你能高效完成的时候才这样做。 清单13.4 展示了一个-addBrushStrokeAtPoint:方法的升级版,它只重绘当前线刷的附近区域。另外也会刷新之前线刷的附近区域,我们也可以用CGRectIntersectsRect()来避免重绘任何旧的线刷以不至于覆盖已更新过的区域。这样做会显著地提高绘制效率(见图13.4) 清单13.4 用-setNeedsDisplayInRect:来减少不必要的绘制

    - (void)addBrushStrokeAtPoint:(CGPoint)point
    {
        //add brush stroke to array
        [self.strokes addObject:[NSValue valueWithCGPoint:point]];
    
        //set dirty rect
        [self setNeedsDisplayInRect:[self brushRectForPoint:point]];
    }
    
    - (CGRect)brushRectForPoint:(CGPoint)point
    {
        return CGRectMake(point.x - BRUSH_SIZE/2, point.y - BRUSH_SIZE/2, BRUSH_SIZE, BRUSH_SIZE);
    }
    
    - (void)drawRect:(CGRect)rect
    {
        //redraw strokes
        for (NSValue *value in self.strokes) {
            //get point
            CGPoint point = [value CGPointValue];
    
            //get brush rect
            CGRect brushRect = [self brushRectForPoint:point];
            
            //only draw brush stroke if it intersects dirty rect
            if (CGRectIntersectsRect(rect, brushRect)) {
                //draw brush stroke
                [[UIImage imageNamed:@"Chalk.png"] drawInRect:brushRect];
            }
        }
    }

    图13.4

    图13.4 更好的帧率和顺滑线条

    异步绘制

    UIKit的单线程天性意味着寄宿图通畅要在主线程上更新,这意味着绘制会打断用户交互,甚至让整个app看起来处于无响应状态。我们对此无能为力,但是如果能避免用户等待绘制完成就好多了。 针对这个问题,有一些方法可以用到:一些情况下,我们可以推测性地提前在另外一个线程上绘制内容,然后将由此绘出的图片直接设置为图层的内容。这实现起来可能不是很方便,但是在特定情况下是可行的。Core Animation提供了一些选择:CATiledLayerdrawsAsynchronously属性。

    CATiledLayer

    我们在第六章简单探索了一下CATiledLayer。除了将图层再次分割成独立更新的小块(类似于脏矩形自动更新的概念),CATiledLayer还有一个有趣的特性:在多个线程中为每个小块同时调用-drawLayer:inContext:方法。这就避免了阻塞用户交互而且能够利用多核心新片来更快地绘制。只有一个小块的CATiledLayer是实现异步更新图片视图的简单方法。

    drawsAsynchronously

    iOS 6中,苹果为CALayer引入了这个令人好奇的属性,drawsAsynchronously属性对传入-drawLayer:inContext:的CGContext进行改动,允许CGContext延缓绘制命令的执行以至于不阻塞用户交互。 它与CATiledLayer使用的异步绘制并不相同。它自己的-drawLayer:inContext:方法只会在主线程调用,但是CGContext并不等待每个绘制命令的结束。相反地,它会将命令加入队列,当方法返回时,在后台线程逐个执行真正的绘制。 根据苹果的说法。这个特性在需要频繁重绘的视图上效果最好(比如我们的绘图应用,或者诸如UITableViewCell之类的),对那些只绘制一次或很少重绘的图层内容来说没什么太大的帮助。

    总结

    本章我们主要围绕用Core Graphics软件绘制讨论了一些性能挑战,然后探索了一些改进方法:比如提高绘制性能或者减少需要绘制的数量。 第14章,『图像IO』,我们将讨论图片的载入性能。

    展开全文
  • 如果要在一个绘图窗口中显示多个图形,可用subplot函数实现。其基本调用格式为:subplot(m, n, k) 或 subplot(m n k),其中m, n, k取值为1 ~ 9。该函数表示将绘图窗口划分为m×n个子窗口(子图),并在第k个子窗口...

    如果要在一个绘图窗口中显示多个图形,可用subplot函数实现。其基本调用格式为:subplot(m, n, k) 或 subplot(m n k),其中m, n, k取值为1 ~ 9。该函数表示将绘图窗口划分为m×n个子窗口(子图),并在第k个子窗口中绘图。

    x=[0 2 5 6 6.75 8.5 10.25 13.5]

    y=[5.25 6.2 7.2 7.5 8 8.7 10.1 13.5];

    [p,S]=polyfit(x,y,2);或者p=polyfit(x,y,2);

    y2=polyval(p,x)

    subplot(121);

    plot(x,y,'r+')

    subplot(122);

    plot(x,y2,'-.b*')

    展开全文
  • 这三是常用的绘图工具,是自定义View的基本。效果图如下:自定义View的代码如下:package com.deepreality.canvasandpaintandpath; import android.content.Context; import android.graphics.BitmapFactory; ...

    Canvas(画布),Paint(画笔),Path(路径)。这三个是常用的绘图工具,是自定义View的基本。

    效果图如下:

    自定义View的代码如下:

    package com.deepreality.canvasandpaintandpath;
    
    import android.content.Context;
    import android.graphics.BitmapFactory;
    import android.graphics.Canvas;
    import android.graphics.Paint;
    import android.graphics.Path;
    import android.graphics.RectF;
    import android.support.annotation.Nullable;
    import android.util.AttributeSet;
    import android.view.View;
    
    public class MyView extends View {
    
        private Paint mPaint;//定义一个画笔
    
        public MyView(Context context) {
            super(context);
            paintInit();
        }
    
        public MyView(Context context, @Nullable AttributeSet attrs) {
            super(context, attrs);
            paintInit();
        }
    
        public MyView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
            super(context, attrs, defStyleAttr);
            paintInit();
        }
    
        private void paintInit() {
            mPaint = new Paint();
            mPaint.setAntiAlias(true);          //抗锯齿
            mPaint.setColor(getResources().getColor(R.color.colorAccent));//画笔颜色
            mPaint.setStyle(Paint.Style.FILL);  //画笔风格
            mPaint.setTextSize(36);             //绘制文字大小,单位px
            mPaint.setStrokeWidth(5);           //画笔粗细
        }
    
        private Path pathInit() {
            Path path = new Path();
            //不会进行绘制,只用于移动移动画笔
            path.moveTo(10, 10);
            //用于直线绘制,默认从(00)开始绘制,用moveTo移动
            path.lineTo(100, 50);
            path.lineTo(200,40);
            path.lineTo(300, 20);
            path.lineTo(200, 10);
            path.lineTo(100, 70);
            path.lineTo(50, 40);
            path.close();
            return path;
        }
    
        private Path pathInit1() {
            Path path = new Path();
            path.moveTo(40, 40);
            path.lineTo(100, 100);
            path.lineTo(200, 200);
            path.lineTo(300, 300);
            path.close();
            return path;
        }
    
        @Override
        protected void onDraw(Canvas canvas) {
            super.onDraw(canvas);
            //设置画布背景颜色
            //canvas.drawColor(getResources().getColor(R.color.colorYellow));
    
            //画实心圆
            //绘制圆,参数一是中心点的x轴,参数二是中心点的y轴,参数三是半径,参数四是paint对象;
            canvas.drawCircle(200, 200, 100, mPaint);
    
            //画矩形
            //canvas.drawRect(100, 100, 300, 300, mPaint);
    
            //绘制bitmap
            //canvas.drawBitmap(BitmapFactory.decodeResource(getResources(), R.mipmap.meizi), 0, 0, mPaint);
    
            //绘制弧形区域
            //参数一是RectF对象,一个矩形区域椭圆形的界限用于定义在形状、大小、电弧,参数二是起始角 ()在电弧的开始,参数三扫描角()开始顺时针测量的,参数四是如果这是真的话,包括椭圆中心的电 弧,并关闭它,如果它是假这将是一个弧线,参数五是Paint对象;
            //canvas.drawArc(new RectF(0, 0, 200, 200),0,90,true, mPaint);
    
            //画圆角矩形
            //canvas.drawRoundRect(new RectF(10, 10, 210, 110), 15, 15, mPaint);
    
            //画椭圆
            //canvas.drawOval(new RectF(0,0,200,300),mPaint);
    
            //绘制多边形
            //Path path = pathInit();
            //canvas.drawPath(path, mPaint);
    
            //绘制文字
            //canvas.drawText("这是一段Canvas(画布)绘制的文字",50,50, mPaint);
    
            //Path path = pathInit1();
            //canvas.drawTextOnPath("这是一段根据设计路径(Path)绘制的文字", path, 40, 40, mPaint);
        }
    }
    

    展开全文
  • Matlab几个绘图技巧,坐标轴翻转等

    万次阅读 2007-11-13 17:20:00
    1先绘制基本图形:x = -pi/2:0.01:pi;plot(x,sin(x)) 2 上面坐标轴长了,我只要-pi/2到pi的:set(gca,XLim,[-pi/2 pi])3 上面只坐标轴只显示整数和.5,我想制定出-pi/2 -pi/4: 0 pi/4 pi/2 pi*3/4 pi坐标:set...
    1先绘制个基本图形:
    
    = -pi/2:0.01:pi;
    plot(x,sin(x))



     2 上面坐标轴长了,我只要-pi/2到pi的:
    set(gca,'XLim',[-pi/2 pi])


    3 上面只坐标轴只显示整数和.5,我想制定出'-pi/2' '-pi/4:' '0' 'pi/4' 'pi/2' 'pi*3/4' 'pi'坐标:
    set(gca,'XTick',[-pi/2:pi/4:pi])

    4 显示的都是小数,我要显示成'-pi/2' '-pi/4:' '0' 'pi/4' 'pi/2' 'pi*3/4' 'pi':
    set(gca,'XTickLabel',{'-pi/2' '-pi/4:' '0' 'pi/4' 'pi/2' 'pi*3/4' 'pi'})


    5 我还想把X轴反过来,左边值大右边值小:
    set(gca,'XDir','reverse')


    学会了么?欲了解更多,请先查MATLAB的帮助,其次问Baidu和Google,再次嘛,问师兄,去论坛发帖问知之者等等。别忘了这儿哦,菜菜的
    展开全文
  • 1机械制圈与计算机绘图教学现状机械制图是职业技术院校机械类专业的-fG重要的专业基础课,也是-H实践性较强的技术课程,因此,机械制图在传统的教学过程中是既难学又难教的学科,在以往的教学过程中机械制图传统的...
  • 1基本条件所谓工程制图、CAD及制图测绘的一体化教学,包括下列五“一体化”:工程制图、计算机绘图制图测绘课堂教学过程的一体化;教材、习题集、教学大纲及教学计划所贯穿的思想和内容的一体化;多媒体教学和实践...
  • 机械制图国家标准与计算机绘图摘要:对现行机械制图国家标准的现状进行分析,指出该标准中存在的问题,提出改进建议与意见。关键词:机械制图,标准,计算机绘图National Standard-Mechanical Drawing and Computer ...
  • 摘要:水利工程制图与计算机绘图实训课程是在理论课程后的集中性实践环节,具有很强实践性,课程以实际水工建筑物水闸工程项目为设计任务,培养学生绘制水利工程图纸的能力,同时进一步激发学习兴趣,提高学生Auto...
  • 《机械制图及计算机绘图》试题库一、填空题1. 零件的可见轮廓线应用 绘制 ,对称图形的对称中心线、轴线用 线绘制。答案:粗实线;点画2. 比例是指的图样上的 与 之比。答案:图上尺寸;实际尺寸3. 图纸上的图框线用...
  • 《机械制图及计算机绘图》由会员分享,可在线阅读,更多相关《机械制图及计算机绘图(8页珍藏版)》请在人人文库网上搜索。1、精品 料推荐湖南农业大学实验项目卡片填报单位(公章) :机械基础实验室(中心)填报人:全腊...
  • 机械制图与计算机绘图答案 篇一计算机绘图试题及答案 题(每题 2 分共 40 分) 1.对于缩放命令可以执行 ( d ) 次上一 a 4 b 6 c 8 d.10 2.要重复输入一命令可在命令行出现 命令 提示符后按 ( b ) af1 键 b空格或...
  • 工程制图与计算机绘图综合实训(12版).doc工程制图与计算机绘图综合实训报告班 级:姓 名:学 号:指导教师:机械基础教研室2012年 5月27日目 录训练一 渐开线标准直齿圆柱齿轮测绘 …………… 1训练二 XXX计算机绘图...
  • 工程制图与计算机绘图综合实训报告班 级:姓 名:学 号:指导教师:机械基础教研室2012年 5月27日目 录训练一 渐开线标准直齿圆柱齿轮测绘 …………… 1训练二 XXX计算机绘图 …………………………… 5训练三 齿轮泵...
  • 《机械制图与计算机绘图》精品课程建设与成效福建信息职业技术学院 许冬梅一、课程定位与设计在企业,如果要加工生产零件,首先要根据零件的性能作用进行设计,或对现有零件样品进行测量,画出零件图,用于指导零件...
  • 一、绘图的方法为了保证绘图质量,提高绘图速度,除了必须熟悉和遵守制图标准、正确使用绘图工具、掌握几何作图的方法外,还要有比较合理的绘图工作顺序。现就绘制仪器图和徒手图的方法和步骤简述如下:(一)画图前的...
  • 工程制图与计算机绘图综合实训报告汇编工程制图与计算机绘图综合实训报告班 级:姓 名: 魏明厚学 号: 1310111232指导教师: 徐岩机械基础教研室2014年 7月10日目 录训练一 渐开线标准直齿圆柱齿轮测绘 …………… ...
  • 解决一qt绘图卡顿的问题

    千次阅读 2020-07-04 17:36:51
    qt绘图笔mfc方便太多了,具体接口就不讨论了,今天记录一个绘图性能差的问题 环境:windows 10 16G内存 4核i5 cpu 按理来说性能十分不错了,但是如果一条线画太长的话,后面的线条越来越慢,甚至影响到了主线程的...
  • 导读:本论文是一篇免费优秀的关于绘图计算机论文范文资料,可用于相关论文写作参考...文章主要以机械制图与计算机绘图的有效融合为中心进行展开,剖析目前机械制图与计算机绘图的教学现状,在此基础上提出几点具体的措...
  • 导读:本论文是一篇免费优秀的关于绘图计算机论文范文资料,可用于相关论文写作参考...文章主要以机械制图与计算机绘图的有效融合为中心进行展开,剖析目前机械制图与计算机绘图的教学现状,在此基础上提出几点具体的措...
  • 如果我们使用过GDI+绘图,那么理解GDI绘图就很容易,不论在GDI还是GDI+中绘图,都需要一个绘图的“画板”,如果没有这个“画板”那么我们所绘制的图就没有地方承载,自然也就不能显示出来给人看见。 GDI+的绘图画板...
  • 工程制图与计算机绘图(2011年机械工业出版社出版的图书)语音编辑锁定讨论上传视频《工程制图与计算机绘图》是根据普通高等学校工程图学课程教学基本要求和作者多年教学经验,并结合我校近几年实施的制图教学改革的...
  • 作为一CAD制图初学入门者,刚开始使用浩辰CAD软件绘制图纸时,可能没有什么章法,效率也很低,那怎么才能提高一下CAD制图速度呢?除了一些常用的CAD命令需要掌握之外,还要遵循一定的作图原则。接下来和小编一起来...
  • 《机械制图电子教桉-02第二章+计算机绘图..ppt》由会员分享,可在线阅读,更多相关《机械制图电子教桉-02第二章+计算机绘图..ppt(16页珍藏版)》请在人人文库网上搜索。1、第二章 计算机绘图基础,2.2 初识AutoCAD,2.1...
  • 学习的同时,还要勤加练习,强迫自己做几综合实例,详细地进行图形的绘制,使自己可以从全局的角度掌握整个绘图过程。学习cad制图不是一蹴而就的,需要大量的实践案例练习。cad制图软件具有良好的用户界面,通过...
  • R语言组合绘图和多图形叠加、图片叠加绘图

    万次阅读 多人点赞 2019-07-02 13:59:55
    实现组合绘图、多图形重合叠加、图片叠加绘图。不同的数据图放到同一张图展示。
  • Python绘图Turtle库详解

    万次阅读 多人点赞 2017-08-02 17:36:45
    Turtle库是Python语言中一很流行的绘制图像的函数库,想象一小乌龟,在一横轴为x、纵轴为y的坐标系原点,(0,0)位置开始,它根据一组函数指令的控制,在这平面坐标系中移动,从而在它爬行的路径上绘制了图形...
  • 同时也感觉到,绘图作为机械设计过程中设计思想的载体,具备良好的绘图能力是每一设计人员最基本的素质。虽然现在考试已经结束,但我觉得自己的学习过程还没结束,还有很多地方可以提高。说到它的使用性,相信许多...
  • 南京邮电大学工程制图报告模版.doc 实验报告课程名称制图基础及计算机绘图学生姓名班级学号指导教师指导单位理学院日期年月日至年月日制图基础与计算机绘图实验报告实验一平面图形的设计班级学号姓名第周星期第节...
  • 基于Android 开发的一款绘图app,其中包含了各种图片处理技术.

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 271,929
精华内容 108,771
关键字:

个绘图