mirror of
https://github.com/vlang/v.git
synced 2023-08-10 21:13:21 +03:00
examples/hot_code_reloading: graph builder
This commit is contained in:
parent
760034b6b1
commit
26ed3fb372
60
examples/hot_code_reloading/graph.v
Normal file
60
examples/hot_code_reloading/graph.v
Normal file
@ -0,0 +1,60 @@
|
|||||||
|
module main
|
||||||
|
|
||||||
|
import gx
|
||||||
|
import gl
|
||||||
|
import gg
|
||||||
|
import glfw
|
||||||
|
|
||||||
|
const (
|
||||||
|
WIDTH = 1000
|
||||||
|
HEIGHT = 1000
|
||||||
|
SCALE = 50
|
||||||
|
)
|
||||||
|
|
||||||
|
struct Context {
|
||||||
|
mut:
|
||||||
|
gg *gg.GG
|
||||||
|
}
|
||||||
|
|
||||||
|
fn main() {
|
||||||
|
glfw.init()
|
||||||
|
mut ctx := &Context{gg: 0}
|
||||||
|
window := glfw.create_window(glfw.WinCfg{
|
||||||
|
title: 'graph builder'
|
||||||
|
width: 1000
|
||||||
|
height: 1000
|
||||||
|
ptr: ctx
|
||||||
|
})
|
||||||
|
window.make_context_current()
|
||||||
|
gg.init()
|
||||||
|
ctx.gg = gg.new_context(gg.Cfg {
|
||||||
|
width: 1000
|
||||||
|
height: 1000
|
||||||
|
use_ortho: true
|
||||||
|
})
|
||||||
|
for {
|
||||||
|
gl.clear()
|
||||||
|
gl.clear_color(255, 255, 255, 255)
|
||||||
|
ctx.draw()
|
||||||
|
window.swap_buffers()
|
||||||
|
glfw.wait_events()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fn (ctx mut Context) draw() {
|
||||||
|
// x axis
|
||||||
|
ctx.gg.draw_line(0, HEIGHT / 2, WIDTH, HEIGHT / 2)
|
||||||
|
// y axis
|
||||||
|
ctx.gg.draw_line(WIDTH / 2, 0, WIDTH / 2, HEIGHT)
|
||||||
|
mut prev_x := f64(0)
|
||||||
|
mut prev_y := f64(0)
|
||||||
|
center := f64(WIDTH / 2)
|
||||||
|
for x := f64(- 10); x <= f64(10); x += 0.01 {
|
||||||
|
y := x * x * f64(SCALE)
|
||||||
|
// gx.draw_line_c(center + prev_x, center+prev_y, center + int(x*float(10)), center+y, gx.BLACK)
|
||||||
|
ctx.gg.draw_rect(int(center) + int(x * f64(SCALE)), int(center - y), 1, 1, gx.Black)
|
||||||
|
// gx.draw_rect_f(center + (x * f64(SCALE)), center - y, 1, 1, gx.BLACK)
|
||||||
|
prev_x = x
|
||||||
|
prev_y = y
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user