热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

什么是agg::arrowhead渲染箭头及使用

本文主要给大家介绍什么是agg::arrowhead渲染箭头及使用,文章内容都是笔者用心摘选和编辑的,具有一定的针对性,对大家的参考意义还是比较大

本文主要给大家介绍什么是agg::arrowhead 渲染箭头及使用,文章内容都是笔者用心摘选和编辑的,具有一定的针对性,对大家的参考意义还是比较大的,下面跟笔者一起了解下什么是agg::arrowhead 渲染箭头及使用吧。

1 文件引用和参数描述

头文件:include/agg_arrowhead.h

构造器:

       void head(double d1, double d2, double d3, double d4)

       void tail(double d1, double d2, double d3, double d4)

通过调用上面的两个函数,确定了箭头的形状。

2 应用经验

agg::vcgen_markers_term:结束的定位标识,保存了结束的坐标和方向

比如说调用agg::conv_stroke声明的时候,提供的模块参数过少,没有指定为轮廓线添加标志!!

agg::conv_stroke  stroke(ps1);

agg::vcgen_markers_term这个以端点作为标志点一定不能少

构建标志实例,获取轮廓线的两端,准备渲染

agg::conv_marker  marker(stroke.markers(), ah);

 什么是agg::arrowhead 渲染箭头及使用

3示例

1)单独渲染箭头与箭尾

代码如下:

   agg::arrowhead ah;

   ah.head(0,10,5,5);

   ah.tail(10,10,5,5);

 

   ras.reset();

   agg::vcgen_markers_term    mt;

   mt.add_vertex(200, 250, agg::path_cmd_move_to);

   mt.add_vertex(280, 250, agg::path_cmd_line_to);

   agg::conv_marker    arr(mt, ah);

   ras.add_path(arr);

   //错误的情况:ras.add_path(ah),将不清楚描绘的具体位置

agg::render_scanlines_aa_solid(ras,sl,renb,agg::rgba8(255,0,0));

2)渲染带箭身的箭头

代码如下:

   agg::path_storage ps1;

   ps1.move_to(200, 200);

   ps1.line_to(400, 200);

   //详细描述箭头的参数,1.箭头离线段的端点的距离

   agg::arrowhead ah;

   ah.head(100,10,5,5); 

   ah.tail(10,10,5,5);

 

   //给线段通过标志的模板参数,然后会将可以通过stroke的markers函数将线段的端点

   //传agg::conv_marker,vcgen_markers_term:以端点作为标记点

   agg::conv_stroke  stroke(ps1);

   //用conv_marker指定ah作为线段marker点的标记

   agg::conv_marker  marker(stroke.markers(), ah);

                     

   ras.add_path(stroke);

   agg::render_scanlines_aa_solid(ras,sl,renb,agg::rgba8(255,0,0));

    //marker要紧随其后加入,添加标志顶点源!!

   ras.add_path(marker);

   //将线条渲染到内存图片当中,准备显示

   agg::render_scanlines_aa_solid(ras,sl,renb,agg::rgba8(255,0,0));

看完以上关于什么是agg::arrowhead 渲染箭头及使用,很多读者朋友肯定多少有一定的了解,如需获取更多的行业知识信息 ,可以持续关注我们的行业资讯栏目的。

 


推荐阅读
  • 本文介绍了Composer依赖管理的重要性及使用方法。对于现代语言而言,包管理器是标配,而Composer作为PHP的包管理器,解决了PEAR的问题,并且使用简单,方便提交自己的包。文章还提到了使用Composer能够避免各种include的问题,避免命名空间冲突,并且能够方便地安装升级扩展包。 ... [详细]
  • 本文介绍了Python语言程序设计中文件和数据格式化的操作,包括使用np.savetext保存文本文件,对文本文件和二进制文件进行统一的操作步骤,以及使用Numpy模块进行数据可视化编程的指南。同时还提供了一些关于Python的测试题。 ... [详细]
  • Linux环境变量函数getenv、putenv、setenv和unsetenv详解
    本文详细解释了Linux中的环境变量函数getenv、putenv、setenv和unsetenv的用法和功能。通过使用这些函数,可以获取、设置和删除环境变量的值。同时给出了相应的函数原型、参数说明和返回值。通过示例代码演示了如何使用getenv函数获取环境变量的值,并打印出来。 ... [详细]
  • 本文介绍了PE文件结构中的导出表的解析方法,包括获取区段头表、遍历查找所在的区段等步骤。通过该方法可以准确地解析PE文件中的导出表信息。 ... [详细]
  • 本文介绍了在mac环境下使用nginx配置nodejs代理服务器的步骤,包括安装nginx、创建目录和文件、配置代理的域名和日志记录等。 ... [详细]
  • Android源码深入理解JNI技术的概述和应用
    本文介绍了Android源码中的JNI技术,包括概述和应用。JNI是Java Native Interface的缩写,是一种技术,可以实现Java程序调用Native语言写的函数,以及Native程序调用Java层的函数。在Android平台上,JNI充当了连接Java世界和Native世界的桥梁。本文通过分析Android源码中的相关文件和位置,深入探讨了JNI技术在Android开发中的重要性和应用场景。 ... [详细]
  • 在CentOS/RHEL 7/6,Fedora 27/26/25上安装JAVA 9的步骤和方法
    本文介绍了在CentOS/RHEL 7/6,Fedora 27/26/25上安装JAVA 9的详细步骤和方法。首先需要下载最新的Java SE Development Kit 9发行版,然后按照给出的Shell命令行方式进行安装。详细的步骤和方法请参考正文内容。 ... [详细]
  • C++字符字符串处理及字符集编码方案
    本文介绍了C++中字符字符串处理的问题,并详细解释了字符集编码方案,包括UNICODE、Windows apps采用的UTF-16编码、ASCII、SBCS和DBCS编码方案。同时说明了ANSI C标准和Windows中的字符/字符串数据类型实现。文章还提到了在编译时需要定义UNICODE宏以支持unicode编码,否则将使用windows code page编译。最后,给出了相关的头文件和数据类型定义。 ... [详细]
  • 本文介绍了win7系统休眠功能无法启动和关闭的解决方法,包括在控制面板中启用休眠功能、设置系统休眠的时间、通过命令行定时休眠、手动进入休眠状态等方法。 ... [详细]
  • 解决github访问慢的问题的方法集锦
    本文总结了国内用户在访问github网站时可能遇到的加载慢的问题,并提供了解决方法,其中包括修改hosts文件来加速访问。 ... [详细]
  • 本文介绍了一种轻巧方便的工具——集算器,通过使用集算器可以将文本日志变成结构化数据,然后可以使用SQL式查询。集算器利用集算语言的优点,将日志内容结构化为数据表结构,SPL支持直接对结构化的文件进行SQL查询,不再需要安装配置第三方数据库软件。本文还详细介绍了具体的实施过程。 ... [详细]
  • 本文介绍了Sencha Touch的学习使用心得,主要包括搭建项目框架的过程。作者强调了使用MVC模式的重要性,并提供了一个干净的引用示例。文章还介绍了Index.html页面的作用,以及如何通过链接样式表来改变全局风格。 ... [详细]
  • 单页面应用 VS 多页面应用的区别和适用场景
    本文主要介绍了单页面应用(SPA)和多页面应用(MPA)的区别和适用场景。单页面应用只有一个主页面,所有内容都包含在主页面中,页面切换快但需要做相关的调优;多页面应用有多个独立的页面,每个页面都要加载相关资源,页面切换慢但适用于对SEO要求较高的应用。文章还提到了两者在资源加载、过渡动画、路由模式和数据传递方面的差异。 ... [详细]
  • 如何实现JDK版本的切换功能,解决开发环境冲突问题
    本文介绍了在开发过程中遇到JDK版本冲突的情况,以及如何通过修改环境变量实现JDK版本的切换功能,解决开发环境冲突的问题。通过合理的切换环境,可以更好地进行项目开发。同时,提醒读者注意不仅限于1.7和1.8版本的转换,还要适应不同项目和个人开发习惯的需求。 ... [详细]
  • 本文分析了Wince程序内存和存储内存的分布及作用。Wince内存包括系统内存、对象存储和程序内存,其中系统内存占用了一部分SDRAM,而剩下的30M为程序内存和存储内存。对象存储是嵌入式wince操作系统中的一个新概念,常用于消费电子设备中。此外,文章还介绍了主电源和后备电池在操作系统中的作用。 ... [详细]
author-avatar
abc1733974979
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有