From 58c65ab393e0b972f1b7f82b04a2ff27abb6d095 Mon Sep 17 00:00:00 2001 From: Abe Pazos Date: Wed, 1 Oct 2025 18:55:31 +0000 Subject: [PATCH] add demos to README.md --- orx-hash-grid/README.md | 21 +++++++++++++-------- orx-image-fit/README.md | 18 +++++++++++++++++- 2 files changed, 30 insertions(+), 9 deletions(-) diff --git a/orx-hash-grid/README.md b/orx-hash-grid/README.md index b7790ef5..b262c5a3 100644 --- a/orx-hash-grid/README.md +++ b/orx-hash-grid/README.md @@ -75,16 +75,19 @@ The program performs the following steps: - Filters the generated points to enforce a minimum distance of 20.0 units between them. - Visualizes the filtered points as circles with a radius of 10.0 units on the canvas. +The `filter` method is provided by `orx-hash-grid`. + ![DemoFilter01Kt](https://raw.githubusercontent.com/openrndr/orx/media/orx-hash-grid/images/DemoFilter01Kt.png) [source code](src/jvmDemo/kotlin/DemoFilter01.kt) ### DemoFilter3D01 -This demo sets up and renders a 3D visualization of filtered random points displayed as small spheres. +Demonstrates how to use a 3D hash-grid `filter` operation to remove points from a random 3D point-collection +that are too close to each other. The resulting points are displayed as small spheres. The program performs the following key steps: -- Generates 10,000 random 3D points within a ring defined by a minimum and maximum radius. +- Generates 10,000 random 3D points located between a minimum and maximum radius. - Filters the points to ensure a minimum distance between any two points using a spatial hash grid. - Creates a small sphere mesh that will be instanced for each filtered point. - Sets up an orbital camera to allow viewing the 3D scene interactively. @@ -96,13 +99,15 @@ The program performs the following key steps: ### DemoHashGrid01 -This demo sets up an interactive graphics application with a configurable -display window and visualization logic. It uses a `HashGrid` to manage points -in a 2D space and randomly generates points within the drawable area. These -points are then inserted into the grid if they satisfy certain spatial conditions. +This demo creates a `HashGrid` to manage points in a 2D space. +Notice the desired cell size in the HashGrid constructor. + +On every animation frame, it attempts to insert 100 random points into the HashGrid. +When a HashGrid cell is free, a point is inserted. + The visual output includes: -- Rectangles representing the bounds of the cells in the grid. -- Circles representing the generated points. +- Rectangles representing the bounds of the occupied cells in the grid. +- Circles representing the generated random points. ![DemoHashGrid01Kt](https://raw.githubusercontent.com/openrndr/orx/media/orx-hash-grid/images/DemoHashGrid01Kt.png) diff --git a/orx-image-fit/README.md b/orx-image-fit/README.md index 4ae27daa..faab99dd 100644 --- a/orx-image-fit/README.md +++ b/orx-image-fit/README.md @@ -72,7 +72,15 @@ fun main() = application { ## Demos ### DemoImageFit01 -Tests `drawer.imageFit()` with all FitMethods for portrait and landscape images. +This program uses `drawer.imageFit()` to draw images using nested grid layout. +The main grid features 4 columns for the `Cover`, `Contain`, `Fill` and `None` fit methods, +and two rows for portrait and landscape images. +Each of those 8 cells feature a 3x3 grid, with cells combining `left`, `center` and `right` alignment +with `top`, `center` and `bottom` alignment. + +The image drawn in each cell is a simple image with a white background and two touching circles: +a pink one and a gray one. In some of the cells part of this image is cropped out (due to the fit method used). +In other cells the image does not fully cover the available area, revealing a dark gray background. ![DemoImageFit01Kt](https://raw.githubusercontent.com/openrndr/orx/media/orx-image-fit/images/DemoImageFit01Kt.png) @@ -80,7 +88,15 @@ Tests `drawer.imageFit()` with all FitMethods for portrait and landscape images. ### DemoImageFitSub01 +Demonstrates the `imageFitSub()` method, which allows specifying not only a target `Rectangle`, +but also a source `Rectangle`, which is used to set the area of the original image we want to fit +into the target. +The program also demonstrates the `Rectangle.uniformSub` method, which returns a random sub-rectangle +taking into consideration the minimum and maximum width and height arguments. + +Notice the trick used to generate unique random results changing only once per second by using +the current seconds as an integer seed. ![DemoImageFitSub01Kt](https://raw.githubusercontent.com/openrndr/orx/media/orx-image-fit/images/DemoImageFitSub01Kt.png)