John Park | 91e6973 | 2019-03-03 13:12:43 -0800 | [diff] [blame] | 1 | import argparse |
| 2 | |
| 3 | arg_parser = argparse.ArgumentParser(description='spline_editor') |
| 4 | arg_parser.add_argument( |
| 5 | 'size', |
| 6 | metavar='N', |
| 7 | default=800, |
| 8 | type=int, |
| 9 | nargs='?', |
| 10 | help="size of the screen") |
| 11 | args = arg_parser.parse_args() |
| 12 | SCREEN_SIZE = args.size |
| 13 | |
John Park | 91e6973 | 2019-03-03 13:12:43 -0800 | [diff] [blame] | 14 | WIDTH_OF_ROBOT = 0.65 |
| 15 | LENGTH_OF_ROBOT = 0.8 |
| 16 | |
John Park | cf54516 | 2020-02-23 20:07:25 -0800 | [diff] [blame] | 17 | ROBOT_SIDE_TO_BALL_CENTER = 0.15 # Placeholder value |
John Park | 91e6973 | 2019-03-03 13:12:43 -0800 | [diff] [blame] | 18 | BALL_RADIUS = 0.165 |
John Park | cf54516 | 2020-02-23 20:07:25 -0800 | [diff] [blame] | 19 | ROBOT_SIDE_TO_HATCH_PANEL = 0.1 # Placeholder value |
John Park | 91e6973 | 2019-03-03 13:12:43 -0800 | [diff] [blame] | 20 | HATCH_PANEL_WIDTH = 0.4826 |
| 21 | |
John Park | cf54516 | 2020-02-23 20:07:25 -0800 | [diff] [blame] | 22 | FIELD = 2020 |
| 23 | |
| 24 | if FIELD == 2019: |
| 25 | WIDTH_OF_FIELD_IN_METERS = 8.258302 # Half Field |
| 26 | elif FIELD == 2020: |
| 27 | WIDTH_OF_FIELD_IN_METERS = 15.98295 # Full Field |
| 28 | LENGTH_OF_FIELD_IN_METERS = 8.21055 # Full Field |
| 29 | |
| 30 | def pxToM(p, length = False): |
| 31 | if(length): |
| 32 | return p * LENGTH_OF_FIELD_IN_METERS / (SCREEN_SIZE/2) |
John Park | 91e6973 | 2019-03-03 13:12:43 -0800 | [diff] [blame] | 33 | return p * WIDTH_OF_FIELD_IN_METERS / SCREEN_SIZE |
| 34 | |
John Park | cf54516 | 2020-02-23 20:07:25 -0800 | [diff] [blame] | 35 | def mToPx(m, length = False): |
| 36 | if(length): |
| 37 | return (m*(SCREEN_SIZE/2)/LENGTH_OF_FIELD_IN_METERS) |
John Park | 91e6973 | 2019-03-03 13:12:43 -0800 | [diff] [blame] | 38 | return (m*SCREEN_SIZE/WIDTH_OF_FIELD_IN_METERS) |
John Park | cf54516 | 2020-02-23 20:07:25 -0800 | [diff] [blame] | 39 | |
| 40 | def inToM(i): |
| 41 | return (i*0.0254) |