精华内容
下载资源
问答
  • 人们有时需要帮助来解释和处理数据的含义,因此,本文还演示了如何为五个国家/地区创建动画水平条形图,显示了案例随日期的变化。 预测印度确诊病例和死亡 这分三个步骤完成。 1.下载资料 科学数据并不总是...

    python可视化

    使用Python和一些图形库,您可以计划在给定日期已确认的COVID-19确诊病例总数,并显示一个国家(本文以印度为例)的死亡总数。 人们有时需要帮助来解释和处理数据的含义,因此,本文还演示了如何为五个国家/地区创建动画水平条形图,显示了案例随日期的变化。

    预测印度确诊病例和死亡

    这分三个步骤完成。

    1.下载资料

    科学数据并不总是开放的,但是幸运的是,许多现代科学和医疗机构渴望与彼此和公众共享信息。 有关COVID-19病例的数据可在线获得,并且会经常更新。

    要解析数据,您首先必须下载它: https : //raw.githubusercontent.com/datasets/covid-19/master/data/countries-aggregated.csv

    将数据直接加载到Pandas DataFrame中。 Pandas提供了一个函数read_csv() ,该函数可以获取一个URL并返回一个DataFrame对象,如下所示:

    import pycountry
    import plotly. express as px
    import pandas as pd
    URL_DATASET = r 'https://raw.githubusercontent.com/datasets/covid-19/master/data/countries-aggregated.csv'
    df1 = pd. read_csv ( URL_DATASET )
    print ( df1. head ( 3 ) )  # Get first 3 entries in the dataframe
    print ( df1. tail ( 3 ) )  # Get last 3 entries in the dataframe

    数据集的第一行包含列名:

    1. 日期
    2. 国家
    3. 已确认
    4. 已恢复
    5. 死亡人数

    查询的输出包括唯一标识符(未列为列)以及每列的条目:

    0 2020 - 01 - 22 Afghanistan 0 0 0
    1 2020 - 01 - 22 Albania 0 0 0
    1 2020 - 01 - 22 Algeria 0 0 0

    尾部查询的输出类似,但包含数据集的尾部:

    12597 2020 - 03 - 31 West Bank and Gaza 119 18 1
    12598 2020 - 03 - 31 Zambia 35 0 0
    12599 2020 - 03 - 31 Zimbabwe 8 0 1
    df1 )具有以下列:
    1. 日期
    2. 国家
    3. 已确认
    4. 已恢复

    此外,您可以看到“ 日期”列具有从1月22日到3月31日开始的条目。此数据库每天更新一次,因此您将拥有当前值。

    2.选择印度的数据

    在此步骤中,我们将仅选择DataFrame中包含印度的那些行。 这显示在下面的脚本中:

    #### ----- Step 2 (Select data for India)----
    df_india = df1 [ df1 [ 'Country' ] == 'India' ]
    print ( df_india. head ( 3 ) )

    3.绘制数据

    在这里,我们创建一个条形图。 我们将在X轴上显示日期,在Y轴上显示已确认病例数和死亡人数。 关于脚本的这一部分,有一些值得注意的事情,如下所示:

    • 代码行: plt.rcParams [“ Figure.figsize” ] = 20,20仅适用于Jupyter。 因此,如果您正在使用其他IDE,请将其删除。

    • 请注意以下代码行: ax1 = plt.gca() 为了确保将图(即已确诊的病例和死亡病例)都绘制在同一张图上,我们需要给第二张图指定图的斧头对象。 因此,我们使用gca()来执行此操作。 (顺便说一句,“ gca”代表“获取当前轴”)。

    完整的脚本如下:

    #  Author:- Anurag Gupta # email:- 999.anuraggupta@gmail.com
    %matplotlib inline
    import matplotlib. pyplot as plt
    import pandas as pd

    #### ----- Step 1 (Download data)----
    URL_DATASET = r 'https://raw.githubusercontent.com/datasets/covid-19/master/data/countries-aggregated.csv'
    df1 = pd. read_csv ( URL_DATASET )
    # print(df1.head(3))  # Uncomment to see the dataframe

    #### ----- Step 2 (Select data for India)----
    df_india = df1 [ df1 [ 'Country' ] == 'India' ]
    print ( df_india. head ( 3 ) )

    #### ----- Step 3 (Plot data)----
    # Increase size of plot
    plt. rcParams [ "figure.figsize" ] = 20 , 20  # Remove if not on Jupyter
    # Plot column 'Confirmed'
    df_india. plot ( kind = 'bar' , x = 'Date' , y = 'Confirmed' , color = 'blue' )

    ax1 = plt. gca ( )
    df_india. plot ( kind = 'bar' , x = 'Date' , y = 'Deaths' , color = 'red' , ax = ax1 )
    plt. show ( )

    整个脚本可在GitHub上找到

    为五个国家/地区创建动画水平条形图

    Jupyter的注意事项:要在Jupyter中将其作为动态动画而不是静态png运行,您需要在单元格的开头添加一个魔术命令,即: %matplotlib notebook 这将使图形保持活动状态,而不是显示静态png文件,因此也可以显示动画。 如果您在另一个IDE上,请删除此行。

    1.下载数据

    此步骤与先前的脚本完全相同,因此无需重复。

    2.创建所有日期的列表

    如果检查下载的数据,您会注意到它的日期列。 现在,此列具有每个国家/地区的日期值。 因此,同一日期发生了很多次。 我们需要创建仅具有唯一值的日期列表。 这将在我们的条形图的X轴上使用。 我们有如下代码行: list_dates = df [ 'Date' ] .unique() unique()方法将仅选择每个日期的唯一值。

    3.选择五个国家并创建一个斧头对象

    列出五个国家。 (您可以选择自己喜欢的国家,甚至可以增加或减少国家数量)。 我还为每个国家/地区的酒吧准备了五种颜色的清单。 (您也可以根据需要更改此设置)。 这里重要的一行代码是: fig,ax = plt.subplots(figsize =(15,8)) 这是创建斧头对象所必需的。

    4.编写回叫功能

    如果要在Matplotlib中进行动画处理,则需要创建一个名为matplotlib.animation.FuncAnimation的类的对象。 此类的签名可在线获得。 该类的构造函数除其他参数外,还接受一个称为func的参数,并且必须为该参数提供回调函数。 因此,在此步骤中,我们将编写回调函数,该函数被重复调用以渲染动画。

    5.创建FuncAnimation对象

    在上一步中已部分解释了此步骤。

    我们创建此类的对象的代码是:

    my_anim = animation. FuncAnimation ( fig = fig , func = plot_bar ,
                        frames = list_dates , blit = True ,
                        interval = 20 )

    要给出的三个重要参数是:

    • fig ,必须给它一个我们之前创建的fig对象。
    • func ,必须是回调函数。
    • frame ,必须包含要在其上进行动画处理的变量。 在本例中,这将是我们之前创建的日期的列表。

    6.将动画保存到mp4文件

    您可以将创建的动画保存到mp4文件中。 但是为此,您需要ffmpeg 您可以通过pip install ffmpeg-python使用pip下载此文件,也可以使用conda(在Jupyter上) install -c conda- forge ffmpeg下载该文件。

    最后,您可以使用plt.show()运行动画。 请注意,在许多平台上, ffmpeg可能无法正常工作,可能需要进一步的“调整”。

    %matplotlib notebook
    #  Author:- Anurag Gupta # email:- 999.anuraggupta@gmail.com
    import pandas as pd
    import matplotlib. pyplot as plt
    import matplotlib. animation as animation
    from time import sleep

    #### ---- Step 1:- Download data
    URL_DATASET = r 'https://raw.githubusercontent.com/datasets/covid-19/master/data/countries-aggregated.csv'
    df = pd. read_csv ( URL_DATASET , usecols = [ 'Date' , 'Country' , 'Confirmed' ] )
    # print(df.head(3)) # uncomment this to see output

    #### ---- Step 2:- Create list of all dates
    list_dates = df [ 'Date' ] . unique ( )
    # print(list_dates) # Uncomment to see the dates

    #### --- Step 3:- Pick 5 countries. Also create ax object
    fig , ax = plt. subplots ( figsize = ( 15 , 8 ) )
    # We will animate for these 5 countries only
    list_countries = [ 'India' , 'China' , 'US' , 'Italy' , 'Spain' ]
    # colors for the 5 horizontal bars
    list_colors = [ 'black' , 'red' , 'green' , 'blue' , 'yellow' ]

    ### --- Step 4:- Write the call back function
    # plot_bar() is the call back function used in FuncAnimation class object
    def plot_bar ( some_date ) :
        df2 = df [ df [ 'Date' ] . eq ( some_date ) ]
        ax. clear ( )
        # Only take Confirmed column in descending order
        df3 = df2. sort_values ( by = 'Confirmed' , ascending = False )
        # Select the top 5 Confirmed countries
        df4 = df3 [ df3 [ 'Country' ] . isin ( list_countries ) ]
        # print(df4)  # Uncomment to see that dat is only for 5 countries
        sleep ( 0.2 )  # To slow down the animation
        # ax.barh() makes a horizontal bar plot.
        return ax. barh ( df4 [ 'Country' ] , df4 [ 'Confirmed' ] , color = list_colors )

    ###----Step 5:- Create FuncAnimation object---------
    my_anim = animation. FuncAnimation ( fig = fig , func = plot_bar ,
                        frames = list_dates , blit = True ,
                        interval = 20 )

    ### --- Step 6:- Save the animation to an mp4
    # Place where to save the mp4. Give your file path instead
    path_mp4 = r 'C: \P ython-articles \p opulation_covid2.mp4'  
    # my_anim.save(path_mp4, fps=30, extra_args=['-vcodec', 'libx264'])
    my_anim. save ( filename = path_mp4 , writer = 'ffmpeg' ,
                 fps = 30 ,
                 extra_args = [ '-vcodec' , 'libx264' , '-pix_fmt' , 'yuv420p' ] )
    plt. show ( )

    完整的脚本可在GitHub上获得

    翻译自: https://opensource.com/article/20/4/python-data-covid-19

    python可视化

    展开全文
  • 线算法要在光栅监视器上显示一条线段,图形系统必须先将两端点投影到整数屏幕坐标,并确定离两端点间的直线路径最近的像素位置。接下来将颜色值装入帧缓存相应的像素坐标处。这一过程将一条线段数字化为一组离散的...

    画线算法

    要在光栅监视器上显示一条线段,图形系统必须先将两端点投影到整数屏幕坐标,并确定离两端点间的直线路径最近的像素位置。接下来将颜色值装入帧缓存相应的像素坐标处。这一过程将一条线段数字化为一组离散的整数位置,图形学画线算法就是研究如何高效处理这个过程。

     

    【DDA算法】

    DDA算法又叫数值微分法,基于以下的数值推导过程:


     

    算法步骤

    ①输入线段两个端点的像素位置。端点间水平和垂直差值赋给dx和dy。

    ②dx和dy中绝对值较大一个赋给参数steps,该值是这条直线段的像素数目

    ③先绘制起始位置(x0,y0),再调整每一步的x和y,逐一绘制余下像素。

    【代码】

    inlineint round(constfloat a)
    
    {
    
        returnint (a+0.5);
    
    }
    
    void lineDDA(int x0,inty0,int xend,intyend)
    
    {
    
       intdx=xend-x0;
    
       intdy=yend-y0;
    
       intk;
    
       floatxincrement,yincrement;
    
       if(fabs(dx)>fabs(dy))
    
         k=fabs(dx);
    
         else
    
          k=fabs(dy);
    
         xincrement=float(dx)/float(k);
    
         yincrement=flaot(dy)/float(k);
    
     
    
         setPixel(round(x),round(y))
    
         for(int i=0;i<k;i++)
    
         {
    
             x+=xincrement;
    
             y+=yincrement;
    
             setPixel(round(x),round(y));//只有坐标轴上增加斜率K大于0.5时才会在坐标轴上加1
    
    }
    
     
    
    }

     

    Bresenham画线算法】

    过各行各列象素中心构造一组虚拟网格线。按直线从起点到终点的顺序计算直线与各垂直网格线的交点,然后根据误差项的符号确定该列象素中与此交点最近的象素。

    核心思想:
    假设:k=dy/dx。因为直线的起始点在象素中心,所以误差项d的初值d0=0。
    X下标每增加1,d的值相应递增直线的斜率值k,即d=d+k。一旦d≥1,就把它减去1,这样保证d在0、1之间。
    当d≥0.5时,最接近于当前象素的右上方象素(x+1,y+1)
    而当d<0.5时,更接近于右方象素(x+1,y)

    为方便计算,令e=d-0.5,
    e的初值为-0.5,增量为k。
    当e≥0时,取当前象素(xi,yi)的右上方象素(x+1,y+1)
    而当e<0时,更接近于右方象素(x+1,y)
    可以改用整数以避免除法。由于算法中只用到误差项的符号,因此可作如下替换:
    e1 = 2*e*dx

    代码

    voidBresenhamline (int x0,int y0,int x1, int y1,int color)
    { 
     int x, y, dx, dy;
     float k, e;
     dx = x1-x0, dy = y1- y0, k=dy/dx;
     e=-0.5, x=x0, y=y0;
     for (i=0; i<=dx; i++)
     {    drawpixel (x, y, color);
     x=x+1,e=e+k;
     if (e>=0)
     { y++, e=e-1;}
     }
    }
    //或者将e扩大2dx倍;
    
    voidBresenhamline (int x0,int y0,int x1, int y1,int color)
    {
    int x, y, dx, dy;
    float k, e;
    dx = x1-x0, dy = y1- y0, k=dy/dx;
    e=-dx, x=x0, y=y0;
    for (i=0; i<=dx; i++)
    { drawpixel (x, y, color);
    x=x+1,e=e+2dy;
    if (e>=0)
    { y++, e=e-2dx;}
    }
    }

     

    展开全文
  • 小谈glOrtho(二)

    2015-02-28 16:48:51
     这一篇主要说一下在正投影里面是如何投影吧,当然不是通过计算去说明,俺还没有达到这种水平,还是从实际的例子去看出问题吧。还是老规矩, 看看下面各种情况~~~  先把上一篇自己得很丑但是很有用的草图出来...
           上一篇说了在正投影里面视景体是怎么移动后,趁着自己还有点耐心就把这篇也写了。
    
          这一篇主要说一下在正投影里面是如何投影吧,当然不是通过计算去说明,俺还没有达到这种水平,还是从实际的例子去看出问题吧。还是老规矩, 看看下面各种情况~~~

       先把上一篇自己画得很丑但是很有用的草图出来吧

                  


          情况一:gluLookAt(0,0,2, 0,0,0, 0,0,1)与gluLookAt(0,0,2, 0,0,-1000, 0,0,1 );
               
                   
       

        情况二:gluLookAt(0,0,2, 0,0,-100, 0,0,1)与gluLookAt(0,0,2, 0,0,100, 0,0,1)

                    

               
         情况三:gluLookAt(0,0,1, 0,0,100, 0,0,1)与gluLookAt(0,0,1, 0,0,-100, 0,0,1)
                 
                   

                  
           我突然觉得可能只有我自己才知道想表达什么了,其实是这样的,从情况一来说,无论你的视点多大,图像大小不发生改变。此外,投影是前后两个面一起投,先投看到的那个视景体的面,后投影背着的面,而且投影幕是照相机的镜片上。
           最后的最后,辛苦大家了。
                  
    展开全文
  • 因为我们还没有好好深入如何画3D物体,暂时就先用最简单的投影(上次讨论过的第二种)方法来画吧。这个程序画一个空间里的立方体,只不过各个部分并不会随着距离而产生大小上的变化。 您可以看到,很多的小球构成了...
    

    3D世界

    让我们现在开始写一个3D的程序,巩固一下这几次学习的东西。因为我们还没有好好深入如何画3D物体,暂时就先用最简单的投影(上次讨论过的第二种)方法来画吧。这个程序画一个空间里的立方体,只不过各个部分并不会随着距离而产生大小上的变化。

    您可以看到,很多的小球构成了立方体的各个边,通过按住方向键,可以水平或垂直方向的更改“摄像头”的位置,Q和A键会把摄像头拉近或拉远,而W和S会改变视距,绿色的三角是视距和视角的示意图。fov角大的话,立方体就显得比较短,反之就显得比较长。

    代码稍微有点长,下面有解释,静下心来慢慢阅读。

    上面的例子使用Vector3来管理向量数据,点的存储是按照z坐标来的,这样在blit的时候,离摄像机近的后画,就可以覆盖远的,否则看起来就太奇怪了……

    在主循环的代码中,会根据按键摄像头会更改位置——当然这是用户的感觉,实际上代码做的是更改了点的位置。而3D的移动和2D是非常像的,只不过多了一个z来判断覆盖远近(也就是绘制顺序),一样的基于时间移动,一样的向量运算,只是由Vector2变为了Vector3。

    然后代码需要绘制全部的点。首先,点的位置需要根据camera_position变量校正,如果结果的z比0还大,说明点在摄像头之前,需要画的,否则就是不需要画。y需要校准一下方向,最后把x、y定位在中间(小球还是有一点点尺寸的)。

    留下的代码是给出信息的,都是我们学习过的东西了。

    如果想好好学习,把立方体换成其他的图像吧!改一下更能加深印象。

    3D第一部分总结

    3D是迄今为止游戏发展中最大的里程碑(下一个会是什么呢?虚拟体验?),我们这几次学习的,是3D的基础,你可以看到,仅有2D绘图经验也能很方便的过渡过来。仅仅是Vector2→Vector3,担任3D向量还是有一些特有的操作的,需要慢慢学习,但是基本的思想不会变。

    但是,请继续思考~ 难道所有的3D游戏就是一系列的3D坐标再手动转换为2D画上去就好了?很可惜或者说很幸运不是的,我们有3D引擎来做这些事情,对Pygame来说,原生的3D处理时不存在的,那么如何真正绘制3D画面?有一个非常广泛的选择——OpenGL,不了解的请自行Wiki,不过OpenGL并不是Pygame的一部分,而且3D实际做下去实在很繁杂,这个系列就暂时不深入讲解了。

    尽管有3D引擎帮我们做投影等事情,我们这几次学的东西绝对不是白费,对基础的一定了解可以更好的写入3D游戏,对画面的掌握也会更好。如果有需要,这个系列的主线完成后,会根据大家的要求追加讲解OpenGL的内容。

    接下来开始讲解Pygame中的声音,基本游戏制作的全部知识我们都快学习完了:)

    展开全文
  • 你将学习什么是等角投影,以及如何用二维数组表示等距水平。我们会制定视图和逻辑之间的联系,这样我们就可以很容易的操纵屏幕上的对象,处理区块碰撞检测。我们也考虑深度排序和角色动画。 1.等距世界等距视图是一...
  • 基于Visual C#的DirectX开发实例教程

    千次下载 热门讨论 2010-03-21 11:33:35
    料等,主要介绍如何采用Visual C# 语言对DirectX进行三维图形开发。本文 共分十六章,以“由易到难、由简单到复杂”为主线,以介绍 DirectX 开发方 法为主,并穿插介绍相关的计算机三维图形知识等。限于作者水平有限...
  • 本书将图形学的一些基本思想和方法组织起来,通过阅读使读者从只会编写简单程序的水平,提高到能够自行设计并编写出优良图形学程序的水平。  适用的读者范围  该书被设定为本科高年级或研究生一年级的一个或两个...
  • 实例210 对子窗体进行水平排列 实例211 对子窗体进行垂直排列 实例212 对子窗体进行层叠排列 10.2 继承窗体的使用 实例213 使用继承选择器创建继承窗体 实例214 以编程方式创建继承窗体 实例215 修改继承窗体...
  • 实例210 对子窗体进行水平排列 实例211 对子窗体进行垂直排列 实例212 对子窗体进行层叠排列 10.2 继承窗体的使用 实例213 使用继承选择器创建继承窗体 实例214 以编程方式创建继承窗体 实例215 修改继承窗体...
  • 实例210 对子窗体进行水平排列 实例211 对子窗体进行垂直排列 实例212 对子窗体进行层叠排列 10.2 继承窗体的使用 实例213 使用继承选择器创建继承窗体 实例214 以编程方式创建继承窗体 实例215 修改继承窗体...
  • MAPGIS地质制图工具

    2013-05-06 16:15:30
    表格数据投影投影EXCEL表的坐标数据到MapGis中,可以投影选中的部分数据,亦可以投影表格的全部数据。 距离角度量算:即显图上距离,总长度,直线角度。 距离角度修改:线按长度、角度修改。 面积量算:量算面积。...
  • 主要内容有C#开发环境的使用、C#语言基础应用、字符串处理技术、数组和集合的使用、面向对象编程技术、数据结构与算法、Windows窗体基础、特色窗体界面、窗体控制技术、MDI... 实例210 对子窗体进行水平排列 282  ...
  • 实例071 如何将字节单位B转换成GB、MB 和KB 108 实例072 身份证号从15位升到18位算法 109 第3章 面向对象编程思想 111 3.1 面向对象家族核心——类与类成员 112 实例073 面向对象编程核心——类、对象和引用 112 ...
  • 实例071 如何将字节单位B转换成GB、MB 和KB 108 实例072 身份证号从15位升到18位算法 109 第3章 面向对象编程思想 111 3.1 面向对象家族核心——类与类成员 112 实例073 面向对象编程核心——类、对象和引用 112 ...
  • 实例071 如何将字节单位B转换成GB、MB 和KB 108 实例072 身份证号从15位升到18位算法 109 第3章 面向对象编程思想 111 3.1 面向对象家族核心——类与类成员 112 实例073 面向对象编程核心——类、对象和引用 112 ...
  • 实例148 投影效果的文字 211 实例149 印版效果的文字 213 实例150 阴影效果的文字 214 实例151 倾斜效果的文字 214 实例152 渐变效果的文字 215 实例153 缩放效果的文字 216 实例154 辉光效果文字 217 实例155 如何...
  • C#程序开发范例宝典(第2版).part02

    热门讨论 2012-11-12 07:55:11
    实例148 投影效果的文字 211 实例149 印版效果的文字 213 实例150 阴影效果的文字 214 实例151 倾斜效果的文字 214 实例152 渐变效果的文字 215 实例153 缩放效果的文字 216 实例154 辉光效果文字 217 实例...
  • C#程序开发范例宝典(第2版).part13

    热门讨论 2012-11-12 20:17:14
    实例148 投影效果的文字 211 实例149 印版效果的文字 213 实例150 阴影效果的文字 214 实例151 倾斜效果的文字 214 实例152 渐变效果的文字 215 实例153 缩放效果的文字 216 实例154 辉光效果文字 217 实例...
  • 实例148 投影效果的文字 211 实例149 印版效果的文字 213 实例150 阴影效果的文字 214 实例151 倾斜效果的文字 214 实例152 渐变效果的文字 215 实例153 缩放效果的文字 216 实例154 辉光效果文字 217 实例...
  • 实例148 投影效果的文字 211 实例149 印版效果的文字 213 实例150 阴影效果的文字 214 实例151 倾斜效果的文字 214 实例152 渐变效果的文字 215 实例153 缩放效果的文字 216 实例154 辉光效果文字 217 实例...
  • 程序开发范例宝典>>

    2012-10-24 10:41:28
    实例137 水平交错效果显示图像 199 实例138 垂直交错效果显示图像 200 实例139 图像纹理效果 201 实例140 图像浮雕效果 203 实例141 积木效果 204 实例142 马赛克效果显示图像 205 实例143 雾化...
  • 实例137 水平交错效果显示图像 199 实例138 垂直交错效果显示图像 200 实例139 图像纹理效果 201 实例140 图像浮雕效果 203 实例141 积木效果 204 实例142 马赛克效果显示图像 205 实例143 雾化效果...
  • 实例137 水平交错效果显示图像 199 实例138 垂直交错效果显示图像 200 实例139 图像纹理效果 201 实例140 图像浮雕效果 203 实例141 积木效果 204 实例142 马赛克效果显示图像 205 实例143 雾化效果...
  • 1.3 如何搭建android开发环境 4 1.3.1 sdk的安装及环境配置 5 1.3.2 eclipse集成开发环境的搭建 7 1.3.3 创建并启动模拟器 9 1.4 hello android应用程序的开发 11 1.4.1 第一个android应用程序 12 ...
  • 多媒体教室

    2013-06-14 08:10:31
    孔博士 多媒体电子教室 说明书 ...多媒体网络教室既无硬件版教学网投资大、安装维护困难、图像传输有重影和水波纹以及线路传输距离限制之弊病;同时又克服了其他同类软件版教学网广播效率低、语音延迟大、操作...
  • 实例210 对子窗体进行水平排列 282 实例211 对子窗体进行垂直排列 283 实例212 对子窗体进行层叠排列 284 10.2 继承窗体的使用 285 实例213 使用继承选择器创建继承窗体 285 实例214 以编程方式创建继承窗体 286 ...
  • 软件工程教程

    热门讨论 2012-07-06 23:10:29
    形成了承载模型的语义背板,赋予模型意义,各种图仅仅是该背板的视图或者可视化投影 修饰 修饰:图中建模元素上暴露的信息项 任何UML图仅是模型的视图, 只有在修饰增强了图的整体清晰性和可读性或者突出模型的某些...
  • 经考试合格,并颁发GIS 高级程序员高级研修班结业证书及3s高级系统设计工程师水平资质证书,全国各级人事、教育、职改部门承认的专业技术继续教育证书。 四、时间:报到时间:2009年6月19日8:00~12:30; 研修班与...
  • 疯狂的程序员

    热门讨论 2012-07-18 18:05:32
    他想那要是这玩艺学好了,在土匪面前往电脑里面把这些命令一敲,那还不迅速展现出他“专家级水平”。那比穿西装打领带递上名片神奇十倍。这么想着,他记得更认真了,并且坚定不移地认为这60块钱还是花的值得的。 从...
  • CCT:Macromedia Director Shockwave投影 CDA:CD音频轨道 CDF:Microsoft频道定义格式文件 CDI:Philip的高密盘交互格式 CDM:Visual dBASE自定义数据模块文件 CDR:CorelDRAW绘图文件;原始音频CD数据文件 ...

空空如也

空空如也

1 2
收藏数 31
精华内容 12
关键字:

如何画水平投影