- 1、本文档共15页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第七章矢量文本的生成及使用
计算机图形学;第7章 矢量文本的生成及使用 ;7.1 矢量文本概述 ;7.1 矢量文本概述 ;7.2 矢量文本的生成 ;7.2.1 矢量化原理 ;7.2.2 单点划线的点阵文本生成;7.2.3 由线段代替相邻点的搜索原则;7.2.4 矢量笔划的归并处理 ;7.3 矢量文本库的存储结构 ;7.3 矢量文本库的存储结构 ;7.3 矢量文本库的存储结构 ;7.4 矢量文本库的调用 ; void xshz(char *str, char *style, float x0, float y0, float width, float height, float dist, float direct, float rotate, int color)
{
int i, j, k=0; int PenDn, PenDnBefore; long int u;
unsigned char qm, wm; float x1, y1, x, y, x11, X1, Y1, X2, Y2; FILE *fpidx, *fplib;
struct hz_idx_table *idx; /* 声明一个库索引结构指针变量 */
struct hz_lib_table *lib; /* 声明一个库文件结构指针变量 */
idx = (struct hz_idx_table *)malloc(sizeof(struct hz_idx_table));
lib = (struct hz_lib_table *)malloc(sizeof(struct hz_lib_table));
fpidx= fopen(slhz.idx, rb); fplib= fopen(slhz.lib, rb);
direct = direct * PI / 180; rotate = rotate * PI / 180;
for (i=0; ik; i=i+2) {
PenDnBefore=0;
qm = hz[i] - 160; /* 计算汉字区码*/
wm = hz[i+1] - 160; /* 计算汉字位码*/
u = ((long)(qm-16)*94 + wm-1)*6; /* 计算汉字在索引文件中的位置*/
fsetpos(fpidx, u); /* 索引文件定位*/
fread(idx, 6, 1, fpidx); /* 读索引文件中读取6个字节*/
fsetpos(fplib, idx-address); /* 矢量文本库定位*/
x = x0 + i * dist * cos(direct); /* 单个汉字在屏幕上显示的首位置*/
y = y0 + i * dist * sin(direct);
; for (j=0; jidx-line_num; j++) { /* 按汉字笔划矢量数循环*/
fread(lib, 2, 1, fplib); /* 读取一对坐标*/
if (lib-x 0x80) { /* 判断本点是抬笔还是落笔*/
lib-x = lib-x -128; /* 为落笔时滤去落笔信息*/
PenDn = 1;
} else {
PenDn = 0;
}
x11 = (float)lib-x / 72 * width ; /* 计算该点相对于汉字左上角*/
y1 = (float)lib-y / 72 * height ; /* 的相对坐标 */
x1 = x11 * cos(rotate) - y1 * sin(rotate) + x; /* 计算该点的 */
y1 = x11 * sin(rotate) + y1 * cos(rotate) + y; /* 实际坐标 */
if (PenDnBefore)
line(X2, Y2, X1, Y1); /* 若前一点为落笔,则与本点相连 */
您可能关注的文档
- 第七章力第三节-重力.ppt
- 第七章可持续发展理论及其内涵.ppt
- 第七章动物生理学呼吸2_张铭2009.ppt
- 第七章商号_商务名片的翻译2012放映.ppt
- 第七章图形.文本和位图.ppt
- 第七章图块.图层和外部参照.ppt
- 第七章南戏和“琵琶记”.ppt
- 第七章图片形式的.ppt
- 第七章区域稳定性.ppt
- 第七章图像处理和CSS技术.ppt
- 2025江浙沪居民睡眠健康小调研报告.pdf
- 毕业论文的开题报告范文.docx
- 团委活动方案(拓展).docx
- 汽车智能驾驶行业深度报告:端到端与AI共振,智驾平权开启新时代.pdf
- 小核酸行业深度:技术平台和适应症不断验证,迎来销售和临床密集兑现期-华福证券-2025.3.31-65页.docx
- 医药生物行业医疗AI专题报告二多组学篇AI技术驱动精准诊断实现重要突破-25031440页.docx
- CXO行业系列报告三寒冬已过行业需求逐步回暖-25031430页.docx
- 全国租赁市场报告2025年3月_可搜索.pdf
- 玩具行业“情绪经济”专题:创新玩法+IP赋能,重新定义玩具-华鑫证券-2025.docx
- 医疗保健行业PCAB抑制剂药物深度报告抑酸药物市场空间广阔PCAB抑制剂大有可为-25.pdf
文档评论(0)