Curling simulation position functions

Click For Summary
SUMMARY

The discussion revolves around creating a computer program to simulate the motion of curling rocks on a trapezoidal rink, specifically the Canadian national men's curling competition. The user is struggling with calculating the pixel positions on the trapezoidal image based on real dimensions of the rink, which measures 14 by 126 feet. The user attempts to derive a scaling function for the horizontal and vertical dimensions but encounters inconsistencies, leading to a total length calculation of only 50 feet instead of the expected 126 feet. The user acknowledges a fundamental misunderstanding in their model, suggesting a need for a more accurate approach to perspective projection.

PREREQUISITES
  • Understanding of basic geometry and trapezoidal shapes
  • Familiarity with pixel scaling and coordinate transformations
  • Knowledge of calculus, particularly integration
  • Experience with programming and simulation concepts
NEXT STEPS
  • Research "perspective projection in computer graphics" for accurate modeling techniques
  • Learn about "coordinate transformations" to convert real-world dimensions to pixel dimensions
  • Explore "linear functions and scaling" to refine the scaling model
  • Investigate "simulation algorithms for motion" specific to physics-based modeling
USEFUL FOR

Software developers, computer graphics enthusiasts, and anyone interested in simulating physical motion in sports environments, particularly in curling.

Delphi51
Homework Helper
Messages
3,406
Reaction score
11
The Canadian national men's curling competition (the Briar) is going on this weekend and I am motivated to write a computer program to simulate the motion of the rocks on the ice. I see on TV that the rectangular rink 14 by 126 feet appears to be trapezoidal on the screen, with the front about 7 times as wide as the far end:
curling1.jpg


I need functions to calculate the position on the trapezoid image in pixels when given the position in feet on the real rink. This strikes me as a fairly easy problem but I keep getting results that don't check out - I must have a fundamental misunderstanding. The horizontal part seems straighforward: clearly the scale of pixels per foot is larger as you move from back to front. It seems to me the vertical scale must be the same as the horizontal one at any position y down from the top or back of the trapezoidal image.
Curling2.jpg

The scale I get is x pixels divided by 7 feet = a(d-y)/(7d), a linear function of the y position. My first test was to integrate the scale times dy to get the total length of the rink in feet. That came out to 126 =Bd/a[ln(d+h) - ln(d)]
I could not choose constants a,b and c to make this equal to 126 feet!

Next, I tried putting in some numbers for the a,b,c constants to make the rink image look about right on the screen and doing a spreadsheet calculation of the scale and feet for each 10 pixels of the height in the image. When I total up the feet for the whole length, I get about 50 feet.
curling3.jpg

Changes to the constants for the image size and shape seem to make this total even less. Something is very wrong with my model, but what?
 
Last edited:
Physics news on Phys.org
Yikes, that is 3D complicated.
 

Similar threads

  • · Replies 2 ·
Replies
2
Views
3K
  • · Replies 16 ·
Replies
16
Views
2K
  • · Replies 1 ·
Replies
1
Views
2K
  • · Replies 5 ·
Replies
5
Views
2K
  • · Replies 4 ·
Replies
4
Views
3K
  • · Replies 2 ·
Replies
2
Views
2K
  • · Replies 2 ·
Replies
2
Views
2K
  • · Replies 2 ·
Replies
2
Views
3K
  • · Replies 2 ·
Replies
2
Views
2K
  • · Replies 25 ·
Replies
25
Views
2K