You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
32 lines
769 B
32 lines
769 B
extends Node2D
|
|
|
|
|
|
onready var polygon: Array = $Polygon2D.polygon
|
|
onready var n = polygon.size()
|
|
|
|
var radius: int = 20
|
|
var k: int = 0
|
|
var points := []
|
|
|
|
|
|
func _draw() -> void:
|
|
for i in n:
|
|
draw_line(polygon[i], polygon[(i+1)%n], Color(1,1,0), 2, 1)
|
|
|
|
draw_circle(points[k], radius / 2, Color( 1, 0, 0, 1 ))
|
|
draw_circle(points[k], 2, Color( 1, 1, 0, 1 ))
|
|
|
|
func _ready() -> void:
|
|
var pds = PoissonDiscSampling.new()
|
|
|
|
var start_time = OS.get_ticks_msec()
|
|
points = pds.generate_points(radius, $Polygon2D.polygon, 30)
|
|
print(points.size(), " points generated in ", OS.get_ticks_msec() - start_time, " miliseconds" )
|
|
|
|
get_viewport().render_target_clear_mode = Viewport.UPDATE_ONCE
|
|
|
|
|
|
func _process(delta: float) -> void:
|
|
if k < points.size() - 1:
|
|
update()
|
|
k += 1
|
|
|