Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenDocCN
zetcode-zh
提交
9d969d52
Z
zetcode-zh
项目概览
OpenDocCN
/
zetcode-zh
9 个月 前同步成功
通知
2
Star
157
Fork
40
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
Z
zetcode-zh
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
9d969d52
编写于
6月 17, 2020
作者:
W
wizardforcel
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
2020-06-17 10:10:09
上级
c28d8ced
变更
10
隐藏空白更改
内联
并排
Showing
10 changed file
with
33 addition
and
33 deletion
+33
-33
docs/graph/30.md
docs/graph/30.md
+4
-4
docs/graph/31.md
docs/graph/31.md
+4
-4
docs/graph/32.md
docs/graph/32.md
+4
-4
docs/graph/33.md
docs/graph/33.md
+1
-1
docs/graph/34.md
docs/graph/34.md
+3
-3
docs/graph/35.md
docs/graph/35.md
+4
-4
docs/graph/37.md
docs/graph/37.md
+3
-3
docs/graph/38.md
docs/graph/38.md
+6
-6
docs/graph/39.md
docs/graph/39.md
+3
-3
docs/graph/40.md
docs/graph/40.md
+1
-1
未找到文件。
docs/graph/30.md
浏览文件 @
9d969d52
...
...
@@ -8,13 +8,13 @@
Cairo 中的绘制是通过上下文完成的。 Cairo 上下文包含所有描述绘制方式的图形状态参数。 这包括信息,例如线宽,颜色,要绘制的表面以及许多其他内容。 这允许实际的绘图函数采用较少的参数来简化界面。
使用 Cairo 进行的所有绘制始终都是对
cairo_t
对象完成的。 Cairo 上下文与特定表面相关。 PDF,SVG,PNG,GtkWindow 等。
使用 Cairo 进行的所有绘制始终都是对
`cairo_t`
对象完成的。 Cairo 上下文与特定表面相关。 PDF,SVG,PNG,GtkWindow 等。
## 路径
路径由一条或多条线组成。 这些线由两个或多个锚点连接。 路径可以由直线和曲线组成。 路径有两种。 打开和关闭路径。 在封闭的路径中,起点和终点相遇。 在开放路径中,起点和终点不相交。
在
Cairo
,我们从一条空路开始。 首先,我们定义一条路径,然后通过抚摸和填充它们使它们可见。 重要说明。 在每个
`cairo_stroke()`
或
`cairo_fill()`
函数调用之后,该路径将被清空。 我们必须定义一条新路径。
在
Cairo
,我们从一条空路开始。 首先,我们定义一条路径,然后通过抚摸和填充它们使它们可见。 重要说明。 在每个
`cairo_stroke()`
或
`cairo_fill()`
函数调用之后,该路径将被清空。 我们必须定义一条新路径。
路径由子路径组成。
...
...
@@ -52,6 +52,6 @@ typedef enum _cairo_surface_type {
## 图案
Cairo 图案代表在表面上绘制时的来源。 在Cairo 中,您可以从中读取图案,该图案用作绘制操作的来源或蒙版。 Cairo 中的图案可以是实心,基于表面或渐变的图案。
Cairo 图案代表在表面上绘制时的来源。 在
Cairo 中,您可以从中读取图案,该图案用作绘制操作的来源或蒙版。 Cairo 中的图案可以是实心,基于表面或渐变的图案。
在Cairo 教程的这一章中,我们给出了一些基本定义。
\ No newline at end of file
在 Cairo 教程的这一章中,我们给出了一些基本定义。
\ No newline at end of file
docs/graph/31.md
浏览文件 @
9d969d52
...
...
@@ -52,7 +52,7 @@ cairo_t *cr;
```
在这里,我们声明一个表面和一个Cairo 上下文。
在这里,我们声明一个表面和一个
Cairo 上下文。
```
surface = cairo_image_surface_create(CAIRO_FORMAT_ARGB32, 390, 60);
...
...
@@ -60,7 +60,7 @@ cr = cairo_create(surface);
```
我们创建一个表面和一个Cairo 上下文。 表面是 390x60 像素的图像。
我们创建一个表面和一个
Cairo 上下文。 表面是 390x60 像素的图像。
```
cairo_set_source_rgb(cr, 0, 0, 0);
...
...
@@ -187,14 +187,14 @@ int main(void)
```
我们可以使用 Firefox,Opera 或 Inkscape 程序打开
svgfile.svg
文件。
我们可以使用 Firefox,Opera 或 Inkscape 程序打开
`svgfile.svg`
文件。
```
surface = cairo_svg_surface_create("svgfile.svg", 390, 60);
```
要在Cairo 创建 SVG 文件,我们必须使用
`cairo_svg_surface_create()`
函数调用来创建 svg 曲面。
要在
Cairo 创建 SVG 文件,我们必须使用
`cairo_svg_surface_create()`
函数调用来创建 svg 曲面。
```
cr = cairo_create(surface);
...
...
docs/graph/32.md
浏览文件 @
9d969d52
...
...
@@ -2,7 +2,7 @@
> 原文: [https://zetcode.com/gfx/cairo/basicdrawing/](https://zetcode.com/gfx/cairo/basicdrawing/)
在Cairo 图形教程的这一部分中,我们将绘制一些基本图元。 我们将绘制简单的线条,使用填充和描边操作,我们将讨论破折号,线帽和线连接。
在
Cairo 图形教程的这一部分中,我们将绘制一些基本图元。 我们将绘制简单的线条,使用填充和描边操作,我们将讨论破折号,线帽和线连接。
## 直线
...
...
@@ -143,7 +143,7 @@ if (event->button == 1) {
```
在单击的回调中,我们确定是单击鼠标左键还是单击鼠标右键。 如果单击鼠标左键,则将
x,y
坐标存储到数组中。
在单击的回调中,我们确定是单击鼠标左键还是单击鼠标右键。 如果单击鼠标左键,则将
`x`
,
`y`
坐标存储到数组中。
```
if (event->button == 3) {
...
...
@@ -367,7 +367,7 @@ Cairo 有三种不同的线帽样式。
Figure: Square, round and butt caps
带有
`CAIRO_LINE_CAP_SQUARE`
上限的行的大小将不同于带有
`CAIRO_LINE_CAP_BUTT`
上限的行。 如果一条线的宽度为 px 宽,则带有
`CAIRO_LINE_CAP_SQUARE`
上限的线的宽度将恰好为 px 宽度。 开头为
width / 2 像素,结尾为 width / 2
像素。
带有
`CAIRO_LINE_CAP_SQUARE`
上限的行的大小将不同于带有
`CAIRO_LINE_CAP_BUTT`
上限的行。 如果一条线的宽度为 px 宽,则带有
`CAIRO_LINE_CAP_SQUARE`
上限的线的宽度将恰好为 px 宽度。 开头为
`width / 2`
像素,结尾为
`width / 2`
像素。
```
static void do_drawing(cairo_t *cr)
...
...
@@ -487,7 +487,7 @@ cairo_stroke(cr);
```
在此代码示例中,我们绘制具有
`CAIRO_LINE_JOIN_MITER`
连接样式的矩形。 线宽为
14px
。
在此代码示例中,我们绘制具有
`CAIRO_LINE_JOIN_MITER`
连接样式的矩形。 线宽为
`14px`
。
![
Line joins
](
img/f6d9a35c05f398c3a210cb25e78ece73.jpg
)
...
...
docs/graph/33.md
浏览文件 @
9d969d52
...
...
@@ -2,7 +2,7 @@
> 原文: [https://zetcode.com/gfx/cairo/shapesfills/](https://zetcode.com/gfx/cairo/shapesfills/)
在Cairo 教程的这一部分中,我们将创建一些基本的和更高级的形状。 我们将用纯色,图案和渐变填充它们。 渐变将在单独的章节中介绍。
在
Cairo 教程的这一部分中,我们将创建一些基本的和更高级的形状。 我们将用纯色,图案和渐变填充它们。 渐变将在单独的章节中介绍。
## 基本形状
...
...
docs/graph/34.md
浏览文件 @
9d969d52
...
...
@@ -2,7 +2,7 @@
> 原文: [https://zetcode.com/gfx/cairo/gradients/](https://zetcode.com/gfx/cairo/gradients/)
在Cairo 图形教程的这一部分中,我们将介绍渐变。 我们将提到线性和径向渐变。
在
Cairo 图形教程的这一部分中,我们将介绍渐变。 我们将提到线性和径向渐变。
在计算机图形学中,渐变是从浅到深或从一种颜色到另一种颜色的阴影的平滑混合。 在 2D 绘图程序和绘画程序中,渐变用于创建彩色背景和特殊效果以及模拟灯光和阴影。 (answers.com)
...
...
@@ -145,7 +145,7 @@ Figure: Linear gradients
## 径向渐变
径向渐变是两个圆之间颜色或阴影的混合。
`cairo_pattern_create_radial()`
函数
s 用于在
Cairo 创建径向渐变。
径向渐变是两个圆之间颜色或阴影的混合。
`cairo_pattern_create_radial()`
函数
用于在
Cairo 创建径向渐变。
```
#include <cairo.h>
...
...
@@ -257,4 +257,4 @@ cairo_fill(cr);
Figure: Radial gradients
在Cairo 图形教程的这一章中,我们介绍了渐变。
\ No newline at end of file
在 Cairo 图形教程的这一章中,我们介绍了渐变。
\ No newline at end of file
docs/graph/35.md
浏览文件 @
9d969d52
...
...
@@ -158,7 +158,7 @@ draw_text(cr, widget);
```
文本的实际绘制委托给
draw_text()
函数。
文本的实际绘制委托给
`draw_text()`
函数。
```
GtkWidget *win = gtk_widget_get_toplevel(widget);
...
...
@@ -240,7 +240,7 @@ static gboolean time_handler(GtkWidget *widget)
```
`time_handler`
调用的主要功能是定期重绘窗口。 当函数返回
FALSE
时,超时功能将停止工作。
`time_handler`
调用的主要功能是定期重绘窗口。 当函数返回
`FALSE`
时,超时功能将停止工作。
```
g_timeout_add(14, (GSourceFunc) time_handler, (gpointer) window);
...
...
@@ -255,7 +255,7 @@ Figure: Puff effect
## 等待演示
在此示例中,我们使用透明效果创建一个等待演示。 我们将绘制 8 条线,这些线将逐渐消失,从而产生一种错觉,即一条线在移动。 此类效果通常用于通知用户幕后正在进行繁重的任务。 一个示例是通过
Internet
流式传输视频。
在此示例中,我们使用透明效果创建一个等待演示。 我们将绘制 8 条线,这些线将逐渐消失,从而产生一种错觉,即一条线在移动。 此类效果通常用于通知用户幕后正在进行繁重的任务。 一个示例是通过
互联网
流式传输视频。
```
#include <cairo.h>
...
...
@@ -404,4 +404,4 @@ g_timeout_add(100, (GSourceFunc) time_handler, (gpointer) window);
Figure: Waiting demo
在Cairo 教程的这一部分中,我们介绍了透明度。
\ No newline at end of file
在 Cairo 教程的这一部分中,我们介绍了透明度。
\ No newline at end of file
docs/graph/37.md
浏览文件 @
9d969d52
...
...
@@ -2,7 +2,7 @@
> 原文: [https://zetcode.com/gfx/cairo/clippingmasking/](https://zetcode.com/gfx/cairo/clippingmasking/)
在Cairo 教程的这一部分中,我们将讨论剪切和遮罩。
在
Cairo 教程的这一部分中,我们将讨论剪切和遮罩。
## 剪裁
...
...
@@ -347,7 +347,7 @@ int main(int argc, char *argv[])
```
盲目效应背后的想法很简单。 图像高度为
h 像素。 我们绘制高度为 1px 的 0、1、2 ...线。 每个周期,图像的一部分高 1px
,直到整个图像可见为止。
盲目效应背后的想法很简单。 图像高度为
`h`
像素。 我们绘制高度为
`1px`
的 0、1、2 ... 线。 每个周期,图像的一部分高
`1px`
,直到整个图像可见为止。
```
struct {
...
...
@@ -425,4 +425,4 @@ static void cleanup()
在
`cleanup()`
功能中,我们销毁了创建的曲面。
本章涉及在Cairo 的剪切和遮罩。
\ No newline at end of file
本章涉及在 Cairo 的剪切和遮罩。
\ No newline at end of file
docs/graph/38.md
浏览文件 @
9d969d52
...
...
@@ -91,14 +91,14 @@ cairo_matrix_init(&matrix,
```
此变换将
y 值剪切为 x
值的 0.5。
此变换将
`y`
值剪切为
`x`
值的 0.5。
```
cairo_transform(cr, &matrix);
```
我们使用
transform()
方法执行变换。
我们使用
`transform()`
方法执行变换。
![
Shearing
](
img/e58072bf5e47d8061f8567490deb4a92.jpg
)
...
...
@@ -128,7 +128,7 @@ static void do_drawing(cairo_t *cr)
```
我们绘制三个
90x90px
的矩形。 在其中两个上,我们执行缩放操作。
我们绘制三个
`90x90px`
的矩形。 在其中两个上,我们执行缩放操作。
```
cairo_scale(cr, 0.6, 0.6);
...
...
@@ -148,7 +148,7 @@ cairo_fill(cr);
```
在这里,我们以 0.8 的系数执行另一个缩放操作。 如果看图片,我们看到第三个黄色矩形是最小的矩形。 即使我们使用了较小的比例因子。 这是因为变换操作是累加的。 实际上,第三个矩形的缩放比例为 0.528(
0.6x0.8
)。
在这里,我们以 0.8 的系数执行另一个缩放操作。 如果看图片,我们看到第三个黄色矩形是最小的矩形。 即使我们使用了较小的比例因子。 这是因为变换操作是累加的。 实际上,第三个矩形的缩放比例为 0.528(
`0.6x0.8`
)。
![
Scaling
](
img/8bccb6e4341704e17ed5dc09b3206729.jpg
)
...
...
@@ -429,7 +429,7 @@ static gdouble delta = 0.01;
```
我们初始化三个重要变量。 角度用于旋转,比例用于缩放星形对象。
delta
变量控制星星何时生长以及何时收缩。
我们初始化三个重要变量。 角度用于旋转,比例用于缩放星形对象。
`delta`
变量控制星星何时生长以及何时收缩。
```
cairo_translate(cr, width/2, height/2);
...
...
@@ -465,4 +465,4 @@ if ( scale < 0.01 ) {
这些线控制星形对象的生长或收缩。
在Cairo 图形教程的这一部分中,我们讨论了变换。
\ No newline at end of file
在 Cairo 图形教程的这一部分中,我们讨论了变换。
\ No newline at end of file
docs/graph/39.md
浏览文件 @
9d969d52
...
...
@@ -2,7 +2,7 @@
> 原文: [https://zetcode.com/gfx/cairo/cairotext/](https://zetcode.com/gfx/cairo/cairotext/)
在Cairo 图形教程的这一部分中,我们将处理文本。
在
Cairo 图形教程的这一部分中,我们将处理文本。
## 灵魂伴侣
...
...
@@ -177,7 +177,7 @@ cairo_show_text(cr, "ZetCode");
```
第二个文本用灰色墨水绘制。 它向右和向下移动了
3px
。
第二个文本用灰色墨水绘制。 它向右和向下移动了
`3px`
。
![
Shaded text
](
img/6e39e7c9a2a487bc62938737ac25cc76.jpg
)
...
...
@@ -287,7 +287,7 @@ cairo_glyph_t glyphs[n_glyphs];
```
字形数组将存储三个整数值。 第一个值是字形到所选字体类型的索引。 第二和第三值是字形的
x,y
位置。
字形数组将存储三个整数值。 第一个值是字形到所选字体类型的索引。 第二和第三值是字形的
`x`
,
`y`
位置。
```
cairo_show_glyphs(cr, glyphs, n_glyphs);
...
...
docs/graph/40.md
浏览文件 @
9d969d52
...
...
@@ -2,7 +2,7 @@
> 原文: [https://zetcode.com/gfx/cairo/cairoimages/](https://zetcode.com/gfx/cairo/cairoimages/)
在Cairo 图形教程的这一部分中,我们将讨论图像。 我们将展示如何在 GTK 窗口上显示图像。 我们还将用图像创建一些效果。
在
Cairo 图形教程的这一部分中,我们将讨论图像。 我们将展示如何在 GTK 窗口上显示图像。 我们还将用图像创建一些效果。
## 显示图像
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录