精华内容
下载资源
问答
  • 交互设计真相

    2021-02-27 00:06:37
    到底什么是交互设计?关于这个问题的答案,我想很多专业的交互设计师也未必能说的很清楚。从《用户体验的要素》上,可以找到“交互设计”。...在网上也找到了比较受认同的解释,这是从交互设计积累的经验得到的:
  • 在这项工作中,我们介绍了神经关系推理(NRI)模型:一种无监督模型,该模型学会推断交互作用,同时仅从观测数据中学习动力学。 我们模型采用变分自动编码器形式,其中潜在代码表示基础交互,而重构基于...
  • CommandLineParser这个类,那么这个类到底有什么作用呢,从命名大概可以猜出这是个命令行解析类。因为我们知道opencv是一个开源库,所以其很少有图形操作方面api,基本上还是基于命令行执行。那么这个类出现...

    CommandLineParser这个类,那么这个类到底有什么作用呢,从命名大概可以猜出这是个命令行解析类。因为我们知道opencv是一个开源库,所以其很少有图形操作方面的api,基本上还是基于命令行执行的。那么这个类的出现主要是方便用户在命令行使用过程中减少工作量。

        大概可以看出来用这个类的好处就是很方便,因为以前版本没这个类时,如果要运行带参数的.exe,必须在命令行中输入文件路径以及各种参数,并且输入的参数格式要与代码中的if语句判断内容格式一样,一不小心就输错了,很不方便。另外如果想要更改输入格式的话在主函数文件中要相应更改很多地方。现在有了这个类,只需要改keys里面的内容就可以了,并且运行时可以直接在vs下用F5,不需要cmd命令行带参运行。最后这个类封装了很多函数,可以直接用,只不过这个本来就是类结构的优点。

    CommandLineParser类说明

    class CV_EXPORTS CommandLineParser
    {
    public:
     
    	/*
    	* 函数功能:构造函数
    	* 参数:
    	*   [in]     argc        main函数中的第一参数,即运行程序中获得指令的个数
    	*   [in]     argv        main函数中的第二个参数,即运行程序中指令的内容
    	*   [in]     key_map     当启动程序是没有输入任何指令,则使用key_map中默认的指指令。
    	* 备注:
    	*   key_map中的格式:
    	*       "{    s|  123asd       |string parameter}
    	*        {    d|  100          |digit parameter }
    	*        {   @c|  false        |without camera  }
    	*        {    1|  some text    |help            }
    	*        {    2|  333          |another help    }"
    	*参数or指令名称|指令or参数内容 |指令说明
    	*
    	*
    	*  运行程序输入指令的方式如下:(例如程序名称为extest.exe)
    	*  extest.exe -s=123asdd -d=1000 -@c=10
    	*  注意:指令名称前面需要加一个“-”,或“--”。当输入指令后面没有参数,默认为true
    	*       另外,前面加@的指令可以不输入指令名称,直接设置指令内容即可。
    	*       没有输入的指令,则使用key_map中的默认值
    	*/
    	CommandLineParser(int argc, const char* const argv[], const String& keys);
      
    	CommandLineParser(const CommandLineParser& parser);
     
     	CommandLineParser& operator = (const CommandLineParser& parser);
     
     	~CommandLineParser();
     
     
    	String getPathToApplication() const;
     
    	/*
    	* 函数功能:获得指令名称的参数值
    	* 参数:
    	*   [in]     name            指令名称,注意此处不要加"-"
    	*   [in]     space_delete    此参数默认为true,把参数内容中的头尾的空格去掉。
    	*/
    	template <typename T>
    	T get(const String& name, bool space_delete = true) const
    	{
    		T val = T();
    		getByName(name, space_delete, ParamType<T>::type, (void*)&val);
    		return val;
    	}
     
     
    	template <typename T>
    	T get(int index, bool space_delete = true) const
    	{
    		T val = T();
    		getByIndex(index, space_delete, ParamType<T>::type, (void*)&val);
    		return val;
    	}
     
     
    	/*
    	* 函数功能:查看是否有此指令名称,如果没有此指令名称报错;若果有此指令,并且此指令有值,则返回true
    	* 参数:
    	*   [in]     keys            指令名称
    	* 返回值
    	*   含有返回true
    	* 备注:
    	*     此函数本质上是检查两个东西:
    	*     1、此指令是否存在
    	*     2、此指令对应的指令内容存在;
    	*     以上二者都存在,返回true;
    	*     所以,只要在命令行输入此值令,并且指令存在,一定返回ture.(因为如果不指定参数内容,系统会默认true)
    	*     但是,在构造函数key_map中,如果指令参数没有填写。即使key_map中存在此指令,也会返回false。(因为没有参数内容)(另外;前提是命令行没有输入此指令)
    	*/
    	bool has(const String& name) const;
     
    	/*
    	* 函数功能:检查输入的指令是否有有错误,即无法解析
    	* 参数:
    	*   [in]
    	* 返回值:
    	*    没有错误返回true,有错误返回false
    	*/
    	bool check() const;
      
    	void about(const String& message);
      
    	void printMessage() const;
      
    	void printErrors() const;
     
    protected:
    	void getByName(const String& name, bool space_delete, int type, void* dst) const;
    	void getByIndex(int index, bool space_delete, int type, void* dst) const;
     
    	struct Impl;
    	Impl* impl;
    };
    

          

         *参数or指令名称|指令or参数内容 |指令说明

        *  运行程序输入指令的方式如下:(例如程序名称为extest.exe)
        *  extest.exe -s=123asdd -d=1000 -@c=10
        *  注意:指令名称前面需要加一个“-”,或“--”。当输入指令后面没有参数,默认为true
        *       另外,前面加@的指令可以不输入指令名称,直接设置指令内容即可。
        *       没有输入的指令,则使用key_map中的默认值

     

    注释的几条函数为常用函数:

    1、构造函数------接收命令行输入的指令

        *  运行程序输入指令的方式如下:(例如程序名称为extest.exe)
        *  extest.exe -s=123asdd -d=1000 -@c=10

    2、get-----获得指定的参数的内容

    3、has----在get之前可以先检查是否含有此指令

    4、check---在使用这些参数之前,检查是否有解析错误的现象;

    keys指针

     例子1:samples中读取视频或摄像机 的一个类中,main函数前定义了一个keys指针

    #include <iostream>
    #include <string>
    #include <sstream>
    using namespace std;
    
    // OpenCV includes
    #include "opencv2/core.hpp"
    #include "opencv2/highgui.hpp"
    using namespace cv;
    
    // OpenCV command line parser functions
    // Keys accecpted by command line parser
    const char* keys =
    {
    	"{help h usage ? | | print this message}"
        "{@video | | Video file, if not defined try to use webcamera}"
    };
    
    int main( int argc, const char** argv )
    {
    	CommandLineParser parser(argc, argv, keys);
        parser.about("Chapter 2. v1.0.0");
        //If requires help show
        if (parser.has("help"))
    	{
    	    parser.printMessage();
    	    return 0;
    	}
    
    	String videoFile= parser.get<String>(0);
    	
    	// Check if params are correctly parsed in his variables
    	if (!parser.check())
    	{
    	    parser.printErrors();
    	    return 0;
    	}
    
    	VideoCapture cap; // open the default camera
    	if(videoFile != "")
    		cap.open(videoFile);
    	else
    		cap.open(0);
        if(!cap.isOpened())  // check if we succeeded
            return -1;
    
        namedWindow("Video",1);
        for(;;)
        {
            Mat frame;
            cap >> frame; // get a new frame from camera
            imshow("Video", frame);
            if(waitKey(30) >= 0) break;
        }
        // Release the camera or video cap
        cap.release();
    	
    	return 0;
    }

     

      前面加@的指令可以不输入指令名称,直接设置指令内容即可前面加@的指令可以不输入指令名称,直接设置指令内容即可

    注释的几条函数为常用函数:

    1、构造函数------接收命令行输入的指令

        *  运行程序输入指令的方式如下:(例如程序名称为extest.exe)
        *  extest.exe -s=123asdd -d=1000 -@c=10

    2、get-----获得指定的参数的内容

    3、has----在get之前可以先检查是否含有此指令

    4、check---在使用这些参数之前,检查是否有解析错误的现象;

     例子2 opencv中 calibration的例

    int main( int argc, char** argv )
    {
        cv::CommandLineParser parser(argc, argv,
            "{help||}{w|8|}{h|11|}{pt|chessboard|}{n|10|}{d|1000|}{s|20|}{o|out_camera_data.yml|}"
            "{op||}{oe||}{zt||}{a|1|}{p||}{v||}{V|0|}{su|1|}"
            "{@input_data|0|}");   // 
     
     
     
     
        if (parser.has("help"))
        {
            help();
            return 0;
        }
        boardSize.width = parser.get<int>( "w" );
        boardSize.height = parser.get<int>( "h" );
        if ( parser.has("pt") )
        {
            string val = parser.get<string>("pt");
            if( val == "circles" )
                pattern = CIRCLES_GRID;
            else if( val == "acircles" )
                pattern = ASYMMETRIC_CIRCLES_GRID;
            else if( val == "chessboard" )
                pattern = CHESSBOARD;
            else
                return fprintf( stderr, "Invalid pattern type: must be chessboard or circles\n" ), -1;
        }
        squareSize = parser.get<float>("s");
        nframes = parser.get<int>("n");
        aspectRatio = parser.get<float>("a");
        delay = parser.get<int>("d");
        writePoints = parser.has("op");
        writeExtrinsics = parser.has("oe");
        if (parser.has("a"))
            flags |= CALIB_FIX_ASPECT_RATIO;
        if ( parser.has("zt") )
            flags |= CALIB_ZERO_TANGENT_DIST;
        if ( parser.has("p") )
            flags |= CALIB_FIX_PRINCIPAL_POINT;
        flipVertical = parser.has("v");
        videofile = parser.has("V");
        if ( parser.has("o") )
            outputFilename = parser.get<string>("o");
        showUndistorted = parser.has("su");
        if ( isdigit(parser.get<string>("@input_data")[0]) )
            cameraId = parser.get<int>("@input_data");
        else
            inputFilename = parser.get<string>("@input_data");
        if (!parser.check())
        {
            help();
            parser.printErrors();
            return -1;
        }
    

     

    展开全文
  • 最近在学Python,同时也在学如何使用python抓取数据,于是就被我发现了这个非常受欢迎Python抓取框架Scrapy,下面一起学习下...下面就来一个个解释每个组件的作用及数据处理过程。 二、组件 1、Scrapy Eng...

    最近在学Python,同时也在学如何使用python抓取数据,于是就被我发现了这个非常受欢迎的Python抓取框架Scrapy,下面一起学习下Scrapy的架构,便于更好的使用这个工具。

    一、概述

    下图显示了Scrapy的大体架构,其中包含了它的主要组件及系统的数据处理流程(绿色箭头所示)。下面就来一个个解释每个组件的作用及数据的处理过程。

    二、组件

    1、Scrapy Engine(Scrapy引擎)

    Scrapy引擎是用来控制整个系统的数据处理流程,并进行事务处理的触发。更多的详细内容可以看下面的数据处理流程。

    2、Scheduler(调度)

    调度程序从Scrapy引擎接受请求并排序列入队列,并在Scrapy引擎发出请求后返还给他们。

    3、Downloader(下载器)

    下载器的主要职责是抓取网页并将网页内容返还给蜘蛛( Spiders)。

    4、Spiders(蜘蛛)

    蜘蛛是有Scrapy用户自己定义用来解析网页并抓取制定URL返回的内容的类,每个蜘蛛都能处理一个域名或一组域名。换句话说就是用来定义特定网站的抓取和解析规则。

    蜘蛛的整个抓取流程(周期)是这样的:

    1. 首先获取第一个URL的初始请求,当请求返回后调取一个回调函数。第一个请求是通过调用start_requests()方法。该方法默认从start_urls中的Url中生成请求,并执行解析来调用回调函数。
    2. 在回调函数中,你可以解析网页响应并返回项目对象和请求对象或两者的迭代。这些请求也将包含一个回调,然后被Scrapy下载,然后有指定的回调处理。
    3. 在回调函数中,你解析网站的内容,同程使用的是Xpath选择器(但是你也可以使用BeautifuSoup, lxml或其他任何你喜欢的程序),并生成解析的数据项。
    4. 最后,从蜘蛛返回的项目通常会进驻到项目管道。

    5、Item Pipeline(项目管道)

    项目管道的主要责任是负责处理有蜘蛛从网页中抽取的项目,他的主要任务是清晰、验证和存储数据。当页面被蜘蛛解析后,将被发送到项目管道,并经过几个特定的次序处理数据。每个项目管道的组件都是有一个简单的方法组成的Python类。他们获取了项目并执行他们的方法,同时他们还需要确定的是是否需要在项目管道中继续执行下一步或是直接丢弃掉不处理。

    项目管道通常执行的过程有:

    1. 清洗HTML数据
    2. 验证解析到的数据(检查项目是否包含必要的字段)
    3. 检查是否是重复数据(如果重复就删除)
    4. 将解析到的数据存储到数据库中

    6、Downloader middlewares(下载器中间件)

    下载中间件是位于Scrapy引擎和下载器之间的钩子框架,主要是处理Scrapy引擎与下载器之间的请求及响应。它提供了一个自定义的代码的方式来拓展Scrapy的功能。下载中间器是一个处理请求和响应的钩子框架。他是轻量级的,对Scrapy尽享全局控制的底层的系统。

    7、Spider middlewares(蜘蛛中间件)

    蜘蛛中间件是介于Scrapy引擎和蜘蛛之间的钩子框架,主要工作是处理蜘蛛的响应输入和请求输出。它提供一个自定义代码的方式来拓展Scrapy的功能。蛛中间件是一个挂接到Scrapy的蜘蛛处理机制的框架,你可以插入自定义的代码来处理发送给蜘蛛的请求和返回蜘蛛获取的响应内容和项目。

    8、Scheduler middlewares(调度中间件)

    调度中间件是介于Scrapy引擎和调度之间的中间件,主要工作是处从Scrapy引擎发送到调度的请求和响应。他提供了一个自定义的代码来拓展Scrapy的功能。

    三、数据处理流程

    Scrapy的整个数据处理流程有Scrapy引擎进行控制,其主要的运行方式为:

    1. 引擎打开一个域名,时蜘蛛处理这个域名,并让蜘蛛获取第一个爬取的URL。
    2. 引擎从蜘蛛那获取第一个需要爬取的URL,然后作为请求在调度中进行调度。
    3. 引擎从调度那获取接下来进行爬取的页面。
    4. 调度将下一个爬取的URL返回给引擎,引擎将他们通过下载中间件发送到下载器。
    5. 当网页被下载器下载完成以后,响应内容通过下载中间件被发送到引擎。
    6. 引擎收到下载器的响应并将它通过蜘蛛中间件发送到蜘蛛进行处理。
    7. 蜘蛛处理响应并返回爬取到的项目,然后给引擎发送新的请求。
    8. 引擎将抓取到的项目项目管道,并向调度发送请求。
    9. 系统重复第二部后面的操作,直到调度中没有请求,然后断开引擎与域之间的联系。

    四、驱动器

    Scrapy是由Twisted写的一个受欢迎的Python事件驱动网络框架,它使用的是非堵塞的异步处理。如果要获得更多关于异步编程和Twisted的信息,请参考下面两条链接。

     

    转载于:https://www.cnblogs.com/gantoday/p/6142252.html

    展开全文
  • UML中协作

    2019-10-02 02:23:27
    1.协作图的定义及其作用  协作图是一种交互图,强调的是发送和接收消息的对象之间的组织结构,使用协作图来说明系统的动态情况。  协作图主要描述协作对象间的交互和链接,显示对象、对象间的链接以及对象间如何...

      1.协作图的定义及其作用

        协作图是一种交互图,强调的是发送和接收消息的对象之间的组织结构,使用协作图来说明系统的动态情况。

        协作图主要描述协作对象间的交互和链接,显示对象、对象间的链接以及对象间如何发送消息。

        协作图可以表示类操作的实现。

      2.协作图中事物的解释

        

    事物名称

    解释

    参与者

    发出主动操作的对象,负责发送初始消息,启动一个操作。

     

    对象

     

    对象是类的实例,负责发送和接收消息,与顺序图中的符号相同,冒号前为对象名,冒号后为类名。

     

    消息流

    (由箭头和标签组成)

    箭头指示消息的流向,从消息的发出者指向接收者。标签对消息作说明,其中,顺序号指出消息的发生顺序,并且指明了消息的嵌套关系;冒号后面是消息的名字。

     标签

    协作图与顺序图的区别

        

    一个例子:

        

     

     

     

     

    转载于:https://www.cnblogs.com/huzi007/archive/2013/05/23/3095920.html

    展开全文
  • 解释统计模型和机器学习模型时,变量重要性,交互作用度量和部分依赖是重要摘要。 在我们R包中, vivid (可变重要性和可变交互显示),我们创建了新可视化技术来探索这些模型摘要。 我们构建热图和...
  • 目前,我们支持使用称为lim的程序包(对本地可解释的模型不可知的解释的简称)来解释针对文本分类器或作用于表(数字或分类数据的numpy数组)或图像的分类器的各个预测。 石灰是基于提出的工作()。 这是促销视频...
  • 完整人机系统中由人机共同作用来完成如下功能:信息接受(收集)、信息加工、信息存储、信号反馈、输入与输出 视觉感知可以分为两个阶段:受到外部刺激接收信息阶段和解释信息阶段。 注意两个基本特征:指向...
    1. 人机交互是关于设计评价实现供人们使用的交互式计算机系统,且围绕这些方面主要现象进行研究的科学。
    2. 人机交互经历了命令行、图形用户界面、自然和谐的交互等三个重要历史发展阶段。
    3. 完整的人机系统中由人机共同作用来完成如下的功能:信息接受(收集)、信息加工、信息存储、信号反馈、输入与输出
    4. 视觉感知可以分为两个阶段:受到外部刺激接收信息阶段和解释信息阶段
    5. 注意两个基本特征:指向性--指心理活动有选择的反映一些现象而离开其余对象;集中性--指心理活动停留在被选择对象上的强度或紧张。
    6. 格式塔知觉组织原理包括:完形律、接近律、相似律、连续律、闭合律、协变律。
    7. 多通道用户界面具有使用多个感觉和效应通道允许非精确的交互三维和直接操纵交互双向性交互的隐含性等基本特点。
    8. 对概念模型的认知,从人们不同的认知特点,分为思维模型信息处理模型外部认知模型和分布式认知模型
    9. 认知涉及到多个特定类型的过程,包括:关注、感知和识别、记忆、学习、阅读、说话和聆听、解题、规划、推理和决策
    10. 知觉的特性包括:知觉的选择性、知觉的理解性、知觉的整体性、知觉的恒常性
    11. 运动捕捉设备分类:机械式、电磁式、光学式捕捉设备。
    12. 人机交互技术的发展经历了批处理、命令文本菜单图形用户界面(WIMP界面)多媒体用户界面多通道用户界面和虚拟现实用户界面
    13. 图形用户界面包含了三个重要的思想是桌面隐喻所见即所得直接操
    14. 隐喻的分类:直接隐喻、工具隐喻、过程隐喻。
    15. 多通道用户交互界面要达到的目标有:交互自然性交互高效性与传统的用户界面WIMP/GUI兼容
    16. 多通道用户界面-基本特点:使用多个感觉和效应通道 、允许非精确的交互 、三维和直接操纵 、交互的双向性 、交互的隐含性。
    17. 虚拟现实系统具有沉浸、交互性构想性等三个重要特点,反映了人机关系的演化过程。
    18. 一个完整的语音识别系统大致可以分为语音特征提取声学模型语言模型等三部分。
    19. 计算机面部表情的识别通常分为如下三个步骤进行,表情的跟踪;表情的编码;表情的识别
    20. 笔交互PIBG 范式中,P主要包括“纸”(Paper)和框架(Frame两类交互组件;IB 表示此范式中与具体语义无关的直接操纵组件;G 表示手势(Gesture,是指此范式中所采用的主要的交互方式
    21. 支持可用性的设计原则中的可学习性包括可预见性、同步性、熟悉性、通用性、一致性
    22. 用户与系统交流信息的多样性主要表现在可定制性、对话主动性、多线程、可互换性、可替换性。
    23. 可用性评估方法包括:用户模型法、启发式评估、认知性遍历、行为分析、放声思考法、用户测试、问卷调查、访谈法等。
    24. 可用性表现在五个方面(5E):有效性、效率、吸引力、容错能力、易于学习。
    25. 用户体验测试中,心流状态指标包括自成目标的体验、控制感、存在感、自我意识的缺失、集中注意力、时间消失感、积极情感等。
    26. 交互设计七大定律:费茨定律、希克定律、神奇数字 7±2 法则、接近法则、防错原则、复杂性守恒定律/泰思勒定律、简单有效原理/奥卡姆剃刀原理。
    27. 费茨定律是什么?

    设计题范围:

    1)二维移动界面设计;

    2)三维移动界面设计;

    3)可用性评估方案设计。

    展开全文
  • 操作系统:XP win7 win10 Mac linux 主要是承上启下的作用,对上层应用程序和下层硬件设备进行数据调度,以及数据之间数据交互. 用下面一组表示 Python 解释器安装教程以及环境变量配置 Python...
  • 1:没有相互作用线性模型 一个变斜率模型 假设我们认为x₁实际上取决于x₂斜率。我们如何将这种信念融入到模型中? 因为我们正在与线性模型,方法之一是模型β₁作为另一个x函数₂线性模型,如下所示:
  • Graphia是功能强大开源视觉分析应用程序,旨在帮助解释大型和复杂数据集。 产品特点 支持从原始CSV到GraphML多种输入数据格式 使用诸如Pearson相关系数算法创建相关 可视化数百万个数据点和关系 交互式...
  • 早在20世纪早期,一个由德国心理学家组成研究小组试图解释人类视觉工作原理。他们观察了许多重要视觉现象并编订了目录。格式塔理论明确地提出:眼脑作用是一个不断组织、简化、统一过程,正是通过这一过程,...
  • 通过头盔显示器、数据手套等辅助传感设备,给人提供一个观察并与虚拟环境进行交互作用的多维人机接口,使人可以进入这个虚拟环境中直接观察事物 内在变化并与事物发生交互作用,给人一种”身临其境”真实感。...
  • 第一问:1×1卷积层的作用

    千次阅读 2018-11-05 17:11:26
    1×1卷积层在实现全卷积神经网络中经常用到,即使用1*1卷积层替换到全连接层,这样可以不限制输入图片大小尺寸,使网络...文中同时利用了跨通道 pooling角度解释,认为文中提出 MLP 其实等价于在传统卷积核...
  •  协作 协作是一种交互,强调是发送和接收消息对象之间组织结构,使用协作来说明系统动态 协作主要显示对象之间交互和链接,... 协作和顺序都表示出了对象间的交互作用,但是他们侧...
  • u=1366459086,2708750174&fm=26&gp=0.jpgPython,一个简单、解释型、交互式、可移植、面向对象高级语言。可进行面向对象编程。Python功能性非常强大,可以轻松获取所需大量图片、音乐、视频、各种资源电子书...
  • 早在20世纪早期,一个由德国心理学家组成研究小组试图解释人类视觉工作原理。他们观察了许多重要视觉现象并编订了目录。格式塔理论明确地提出:眼脑作用是一个不断组织、简化、统一过程,正是通过这一过程,...
  • 1*1卷积作用

    2019-02-23 18:51:24
    主要有两点作用: 1x1 卷积可以压缩信道数。池化可以压缩宽和高。 1x1卷积给神经网络增加非线性,从而减少或保持信道数不变,也可以增加信道数。...文中同时利用了跨通道pooling角度解释,认为文中提出ML...
  • 2.2 (复习题)解释EZChooser中出现在条形上方边界图标的作用。2.3 (复习题)比较过滤和聚焦优缺点。2.4 (复习题)一辆汽车属性有价格、外观、品牌、推荐值、马力、生产年份及车龄。请分别指出其中属于...
  • 二、 javascript的作用? HTML:整个网站骨架 CSS:对整个网站骨架内容进行美化 JavaScript:能够让整个页面具有动态效果。 三、 javascript组成部分 ECMAScript:它是整个 javascript 核心,包含(基本语法、...
  • iggy实现了用于检查大型数据集一致性的方法,并提供了不一致的解释。 在实践中,这用于识别不可靠的数据或指示缺少的React。 此外, iggy解决了修复网络和相应但经常不一致的测量的问题,以便重新建立它们的相互...
  • 基于思想主要是源推特情感和观点应该会被用户参与和交互反映(主要强调了交互特征的作用),集体智能! 现有虚假新闻检测方法主要需要很丰富用户评论来补充和分析推特观点,检测虚假新闻,还有些需要很...
  • 一个数据集是内存中提供数据关系图的高速缓冲区。数据集对数据源一无所知,它们可以由程序或通过从数据仓库中调入数据而被生成、填充。不论数据从何处获取,数据集都是通过使用同样的程序模板而被操作的,并且它使用...

空空如也

空空如也

1 2 3 4 5 ... 11
收藏数 217
精华内容 86
关键字:

交互作用图的解释