Page 5 of 5

Re: English Genesis 1:1

Posted: Sat Feb 28, 2026 10:47 pm
by RAMcGough
Alex wrote: Sat Feb 28, 2026 9:17 pm Alright, but I hate making centered polygons in a designer program so I will try to get AI to modify my Polygon mode in the calculator to do centered polygons. Only then I can make images for 316 & 7246.
Don't worry about it. Words should be fine most of the time. Just try to explain what you mean so there's no confusion.

And you can just go to the wiki and copy/paste images if you need them. It's super quick and easy now that I added the extension that does it for you. Like this:
image.png
image.png (130.16 KiB) Viewed 353 times

Re: English Genesis 1:1

Posted: Sun Mar 01, 2026 8:59 am
by Alex
I wanted that feature for my calculator as I actually got the idea of making this around 1 week ago.
But I forgot it and I tried now but no... Almost though, it was close.
I guess I will just have to use Wikipedia images or Downie's images to show what a Centered Triangle is.
Downie makes the best Centered Triangle images without a doubt.

Re: English Genesis 1:1

Posted: Sun Mar 01, 2026 9:05 am
by Alex
Maybe you can see how this is done correctly:

//dot drawing

GridType::CenteredTriangle => {
let center_x_of_grid = grid_draw_origin.x + (grid_size as f32 * spacing) / 2.0;
for r_idx in 0..grid_size {
let cols_in_this_row = r_idx + 1;
let y_pos = grid_draw_origin.y + r_idx as f32 * hex_height;
let x_stagger = if r_idx % 2 != 0 { spacing / 2.0 } else { 0.0 };
let row_half_width = (cols_in_this_row - 1) as f32 * spacing / 2.0;
let row_start_x = center_x_of_grid - row_half_width + x_stagger;

for c_idx in 0..cols_in_this_row {
let center_x = row_start_x + c_idx as f32 * spacing;
let pos = egui::pos2(center_x, y_pos);
if response.rect.expand(spacing).contains(pos) {
painter.circle_filled(pos, 2.0, grid_line_color.linear_multiply(0.5));
}
}
}
}

//Counter position

GridType::CenteredTriangle => {
if row > 0 && col > 0 && col <= row && row <= grid_size {
let row_idx = row - 1;
let col_idx = col - 1;
let center_x_of_grid = (grid_size as f32 * spacing) / 2.0;
let x_stagger = if row_idx % 2 != 0 { spacing / 2.0 } else { 0.0 };
let row_half_width = row_idx as f32 * spacing / 2.0;
let row_start_x = center_x_of_grid - row_half_width + x_stagger;
let center_x_rel = row_start_x + col_idx as f32 * spacing;
let center_y_rel = row_idx as f32 * hex_height;
Some(grid_draw_origin + egui::vec2(center_x_rel, center_y_rel))
} else {
None
}
}