Ir de Aprendizaje de Idiomas - 4 notas

Prueba de generación de imágenes Ir cardioide.

Idea: paquetes de datos imagen Va imagen generada -> en formato html, ver imágenes a través de la web.

En primer lugar la secuencia de comandos (cambiar el formato de datos -> html)

gofile = $ 1 
htmfile = $ 2 
Va la estructura $ gofile.go 
eval "./$gofile" >> temp_go_jpg.data 

si [-e "$ htmfile.html"] 
entonces 
        rm $ htmfile.html 
fi echo "<img src = \" datos: image / png; base64, ">> $ htmfile.html 
sed -i "s / iMAGEN: // g" temp_go_jpg.data 
temp_go_jpg.data cat >> $ htmfile.html 
echo "\">" >> $ htmfile .html 
rm temp_go_jpg.data



En donde los datos de reemplazo es la parte marcada en rojo.

echo "<img src = \" data: image / png; base64," >> $ htmfile.html

sed -i "s / IMAGE: // g" temp_go_jpg.data

temp_go_jpg.data cat >> $ htmfile.html

echo "\">" >> $ htmfile.html

Si este archivo script es gen.sh, vaya image.go archivo, que se genera index.html, que puede ejecutar el comando ./gen.sh índice de imágenes

 

Cardioide ecuación seleccionada: (X 2 + Y 2 - T) 3. = X 2 Y 3.

Para un pequeño efecto de gradiente, en la región de color en forma de corazón cambia de acuerdo con t

Código es el siguiente:

paquete principal 

de importación ( 
	"golang.org/x/tour/pic" 
	"imagen" 
	"imagen / de color" 
	"matemáticas" 
) 

struct tipo de imagen { 
	int ancho 
} 

//计算心形线半径
func (img * Imagen) CalcHeartRadius (x , y, int desplazamiento) float64 { 
	//心形线方程: (x ^ 2 + y ^ 2 - t) ^ 3 = x ^ 2 * y ^ 3,求t 
	//做标轴修正x = x, y = -y,方程(x ^ 2 + y ^ 2 - t) ^ 3 = 0 - x ^ 2 * y ^ 3,求t 
	// x = x - desplazamiento, y = y - cambio 
	fx: = float64 (x ) - float64 (shift) 
	fy: = float64 (y) - float64 (shift) 

	fValue1: = Math.pow (fx, 2) 
	fCbrt: = math.Cbrt (fValue1) * fy 
	ft: = Math.pow (fx, 2 ) + Math.pow (fy, 2) + fCbrt	 
	si ft <0 { 
		return 0 
	}
	Math.sqrt retorno (ft) 
} 

func (img * Imagen) ColorModel () {color.Model 
	retorno color.RGBAModel 
} 

func (img * Imagen) Límites () {image.Rectangle 
	retorno image.Rect (0, 0, img. anchura, img.width) 
} 

func (img * Image) A (x, y int) color.Color { 
	intShift: = img.width / 2 
	radio: = img.CalcHeartRadius (x, y, intShift) 
	fmax: = float64 ( intShift) * 0,9 
		
	si el radio> fmax { 
		retorno color.RGBA {0, 0, 0, 0} 
	} 
	intRadius: = uint8 (radio) 
	si fmax> 150 { 
		intRadius = uint8 (150 * float64 (intRadius) / fmax) 
	} 
	
	retorno color.RGBA {255-intRadius, 0, 0, 255} 
} 

func main () { 
	anchura: = 240 
	m: = Image {anchura} 
	pic.ShowImage (& m)
}

Debido a que los paquetes van imagen eje de coordenadas, eje y dirección hacia abajo, es decir, el punto (0,0) en la parte superior izquierda de la plaza, por lo que para cambiar la ecuación, y se sustituye -Y, más se convierte en el centro de la forma de corazón (anchura / 2, ancho / 2), la traducción de este modo la ecuación, x = x-ancho / 2, y = y-wdith / 2

Una vez generada, HTML abierto, ver imágenes, imágenes de la siguiente manera:

 

Supongo que te gusta

Origin www.cnblogs.com/gsjtu/p/12640175.html
Recomendado
Clasificación