mirror of
https://github.com/gopl-zh/gopl-zh.github.com.git
synced 2025-10-16 12:11:35 +00:00
修正半角标点符号
This commit is contained in:
@@ -73,7 +73,7 @@ Go语言还提供了以下的bit位操作运算符,前面4个操作运算符
|
||||
>> 右移
|
||||
```
|
||||
|
||||
位操作运算符`^`作为二元运算符时是按位异或(XOR),当用作一元运算符时表示按位取反;也就是说,它返回一个每个bit位都取反的数。位操作运算符`&^`用于按位置零(AND NOT):如果对应y中bit位为1的话, 表达式`z = x &^ y`结果z的对应的bit位为0,否则z对应的bit位等于x相应的bit位的值。
|
||||
位操作运算符`^`作为二元运算符时是按位异或(XOR),当用作一元运算符时表示按位取反;也就是说,它返回一个每个bit位都取反的数。位操作运算符`&^`用于按位置零(AND NOT):如果对应y中bit位为1的话,表达式`z = x &^ y`结果z的对应的bit位为0,否则z对应的bit位等于x相应的bit位的值。
|
||||
|
||||
下面的代码演示了如何使用位操作解释uint8类型值的8个独立的bit位。它使用了Printf函数的%b参数打印二进制格式的数字;其中%08b中08表示打印至少8个字符宽度,不足的前缀部分用0填充。
|
||||
|
||||
|
@@ -135,15 +135,15 @@ func f(x, y float64) float64 {
|
||||
|
||||
要注意的是corner函数返回了两个结果,分别对应每个网格顶点的坐标参数。
|
||||
|
||||
要解释这个程序是如何工作的需要一些基本的几何学知识,但是我们可以跳过几何学原理,因为程序的重点是演示浮点数运算。程序的本质是三个不同的坐标系中映射关系,如图3.2所示。第一个是100x100的二维网格,对应整数坐标(i,j),从远处的(0, 0)位置开始。我们从远处向前面绘制,因此远处先绘制的多边形有可能被前面后绘制的多边形覆盖。
|
||||
要解释这个程序是如何工作的需要一些基本的几何学知识,但是我们可以跳过几何学原理,因为程序的重点是演示浮点数运算。程序的本质是三个不同的坐标系中映射关系,如图3.2所示。第一个是100x100的二维网格,对应整数坐标(i,j),从远处的(0,0)位置开始。我们从远处向前面绘制,因此远处先绘制的多边形有可能被前面后绘制的多边形覆盖。
|
||||
|
||||
第二个坐标系是一个三维的网格浮点坐标(x,y,z),其中x和y是i和j的线性函数,通过平移转换为网格单元的中心,然后用xyrange系数缩放。高度z是函数f(x,y)的值。
|
||||
|
||||
第三个坐标系是一个二维的画布,起点(0,0)在左上角。画布中点的坐标用(sx, sy)表示。我们使用等角投影将三维点
|
||||
第三个坐标系是一个二维的画布,起点(0,0)在左上角。画布中点的坐标用(sx,sy)表示。我们使用等角投影将三维点(x,y,z)投影到二维的画布中。
|
||||
|
||||

|
||||
|
||||
(x,y,z)投影到二维的画布中。画布中从远处到右边的点对应较大的x值和较大的y值。并且画布中x和y值越大,则对应的z值越小。x和y的垂直和水平缩放系数来自30度角的正弦和余弦值。z的缩放系数0.4,是一个任意选择的参数。
|
||||
画布中从远处到右边的点对应较大的x值和较大的y值。并且画布中x和y值越大,则对应的z值越小。x和y的垂直和水平缩放系数来自30度角的正弦和余弦值。z的缩放系数0.4,是一个任意选择的参数。
|
||||
|
||||
对于二维网格中的每一个网格单元,main函数计算单元的四个顶点在画布中对应多边形ABCD的顶点,其中B对应(i,j)顶点位置,A、C和D是其它相邻的顶点,然后输出SVG的绘制指令。
|
||||
|
||||
|
@@ -93,4 +93,4 @@ func mandelbrot(z complex128) color.Color {
|
||||
|
||||
**练习 3.8:** 通过提高精度来生成更多级别的分形。使用四种不同精度类型的数字实现相同的分形:complex64、complex128、big.Float和big.Rat。(后面两种类型在math/big包声明。Float是有指定限精度的浮点数;Rat是无限精度的有理数。)它们间的性能和内存使用对比如何?当渲染图可见时缩放的级别是多少?
|
||||
|
||||
**练习 3.9:** 编写一个web服务器,用于给客户端生成分形的图像。运行客户端通过HTTP参数指定x,y和zoom参数。
|
||||
**练习 3.9:** 编写一个web服务器,用于给客户端生成分形的图像。运行客户端通过HTTP参数指定x、y和zoom参数。
|
||||
|
@@ -29,7 +29,7 @@ if b {
|
||||
}
|
||||
```
|
||||
|
||||
如果需要经常做类似的转换, 包装成一个函数会更方便:
|
||||
如果需要经常做类似的转换,包装成一个函数会更方便:
|
||||
|
||||
```Go
|
||||
// btoi returns 1 if b is true and 0 if false.
|
||||
@@ -41,7 +41,7 @@ func btoi(b bool) int {
|
||||
}
|
||||
```
|
||||
|
||||
数字到布尔型的逆转换则非常简单, 不过为了保持对称, 我们也可以包装一个函数:
|
||||
数字到布尔型的逆转换则非常简单,不过为了保持对称,我们也可以包装一个函数:
|
||||
|
||||
```Go
|
||||
// itob reports whether i is non-zero.
|
||||
|
Reference in New Issue
Block a user