Executando verificação de segurança...
5

API Canvas do JavaScript no Golang e como usar

Olá pessoal, tudo bem? Eu sou Henrique e vou apresentar-lhes o package https://github.com/tfriedel6/canvas

Features

Esse package é baseado em OpenGL e você pode escolher entre usar o SDL ou o GLFW para fazer as chamadas OpenGL para você

Para mudar entre eles, você poderá usar o exemplo abaixo como referência para isso.

Para usar o SDL, use o pacote github.com/tfriedel6/canvas/sdlcanvas

Para usar o GLFW, use o pacote
github.com/tfriedel6/canvas/glfwcanvas

E não se preucupe, as funções dos pacotes são as mesmas. Use o exemplo para referência.

Exemplo

Usarei o exemplo da própia página do GitHub do tfriedel6 pois estou no celular e não tenho como testar algum exemplo próprio.

Usando este código:

package main
import (
	"math"
	"github.com/tfriedel6/canvas/sdlcanvas"
)
func main() {
	wnd, cv, err := sdlcanvas.CreateWindow(1280, 720, "Hello")
	if err != nil {
		panic(err)
	}
	defer wnd.Destroy()
	wnd.MainLoop(func() {
		w, h := float64(cv.Width()), float64(cv.Height())
		cv.SetFillStyle("#000")
		cv.FillRect(0, 0, w, h)
		for r := 0.0; r < math.Pi*2; r += math.Pi * 0.1 {
			cv.SetFillStyle(int(r*10), int(r*20), int(r*40))
			cv.BeginPath()
			cv.MoveTo(w*0.5, h*0.5)
			cv.Arc(w*0.5, h*0.5, math.Min(w, h)*0.4, r, r+0.1*math.Pi, false)
			cv.ClosePath()
			cv.Fill()
		}
		cv.SetStrokeStyle("#FFF")
		cv.SetLineWidth(10)
		cv.BeginPath()
		cv.Arc(w*0.5, h*0.5, math.Min(w, h)*0.4, 0, math.Pi*2, false)
		cv.Stroke()
	})
}

Resulta em uma janela com isto:

Resultado

Carregando publicação patrocinada...
1

Seja muito bem vindo Henrique! Muito obrigado pelo post e eu sou apaixonado por "Canvas", no sentido de colocar um "game loop" e ficar desenhando coisas. Um canvas que fiz e que gostei muito foi esse:

https://filipedeschamps.github.io/doom-fire-algorithm/playground/falling-stars/

Em paralelo, duas sugestões para o seu post:

Syntax highlight

Sugiro definir a linguagem no início do bloco de código, por exemplo:

```go

Fazendo o resultado ficar assim:

package main

import (
	"math"
	github.com/tfriedel6/canvas/sdlcanvas"
)

URLs

Colocar a URL completa (com o https://0 para que o editor insira um link automaticamente 🤝

2
1