黄智勇 发表于 2018-9-21 08:51:42

~不会飞的章鱼~

  源地址 https://tour.go-zh.org/moretypes/18

一、练习题描述
  实现 Pic。它应当返回一个长度为 dy 的切片,其中每个元素是一个长度为 dx,元素类型为 uint8 的切片。当你运行此程序时,它会将每个整数解释为灰度值(好吧,其实是蓝度值)并显示它所对应的图像。
  图像的选择由你来定。几个有趣的函数包括 (x+y)/2, x*y, x^y, x*log(y) 和 x%(y+1)。
  (提示:需要使用循环来分配 [][]uint8 中的每个 []uint8;请使用 uint8(intValue) 在类型之间转换;你可能会用到 math 包中的函数。)


二、分析


[*]外层切片的长度为dy;
[*]内层切片的长度为dx;
[*]内层切片中的每个元素值为 (x+y)/2,x*y...;
[*]使用嵌套循环的方式计算颜色值。

三、Go代码
  

package main  

  
import
"golang.org/x/tour/pic"  

  
func Pic(dx, dy
int) [][]uint8 {  
a :
= make([][]uint8,dy)//外层切片  
for x := range a{
  
b := make([]uint8,dx)//里层切片
  
for y := range b{
  
b = uint8(x*y - 1)//给里层切片里的每一个元素赋值。其中x*y可以替换成别的函数
  
      }
  
a = b//给外层切片里的每一个元素赋值
  
    }
  
return a
  
}
  

  
func main() {
  
pic.Show(Pic)
  
}
  

  x*y 的运行结果

  (x+y)/2 的运行结果

  x^y 的运行结果

  x%(y+1) 的运行结果

  参考文档 https://blog.csdn.net/qq_27818541/article/details/54346106


页: [1]
查看完整版本: ~不会飞的章鱼~