Rotate a shape by a specified angle around the origin.
Value
If
xis a single matrix: returns the rotated matrixIf
xis a list: returns a list of rotated matricesIf
xis a tibble: returns the tibble with specified coo columns rotated
See also
coo_rotate_around() for rotation around a specific point; coo_slide_angle() for rotating point order by angle
Examples
# Rotate by 45 degrees
coo_rotate(shapes$cat, theta = pi / 4)
#> <xy [120 x 2]>
#> [,1] [,2]
#> [1,] 97.581 185.262
#> [2,] 98.995 178.191
#> [3,] 101.823 181.019
#> [4,] 107.480 183.848
#> [5,] 113.844 181.726
#> [6,] ... ...
#> [7,] 123.037 186.676
#> [8,] 117.380 183.848
#> [9,] 109.602 184.555
#> [10,] 102.530 185.969
#> [11,] 96.874 188.798
# Rotate list of shapes
coo_rotate(bot$coo, theta = pi / 6)
#> $brahma
#> <xy [138 x 2]>
#> [,1] [,2]
#> [1,] -248.457 504.340
#> [2,] -235.359 487.654
#> [3,] -229.859 478.127
#> [4,] -216.761 461.441
#> [5,] -203.663 444.754
#> [6,] ... ...
#> [7,] -298.555 585.113
#> [8,] -293.921 575.086
#> [9,] -283.421 556.900
#> [10,] -272.055 539.213
#> [11,] -266.189 531.053
#>
#> $caney
#> <xy [168 x 2]>
#> [,1] [,2]
#> [1,] -221.601 489.824
#> [2,] -216.601 481.163
#> [3,] -205.735 464.343
#> [4,] -201.601 455.183
#> [5,] -195.735 447.022
#> [6,] ... ...
#> [7,] -242.182 571.472
#> [8,] -239.976 549.651
#> [9,] -238.806 537.625
#> [10,] -236.405 527.465
#> [11,] -229.869 508.144
#>
#> $chimay
#> <xy [189 x 2]>
#> [,1] [,2]
#> [1,] -124.065 312.886
#> [2,] -120.065 305.958
#> [3,] -116.565 299.896
#> [4,] -111.699 293.468
#> [5,] -107.699 286.540
#> [6,] ... ...
#> [7,] -138.405 357.724
#> [8,] -138.735 348.295
#> [9,] -137.833 340.733
#> [10,] -135.565 332.805
#> [11,] -132.431 325.377
#>
#> $corona
#> <xy [129 x 2]>
#> [,1] [,2]
#> [1,] -134.192 414.427
#> [2,] -129.192 405.767
#> [3,] -119.558 387.080
#> [4,] -113.692 378.920
#> [5,] -108.192 369.394
#> [6,] ... ...
#> [7,] -150.809 497.209
#> [8,] -147.737 475.888
#> [9,] -147.567 465.594
#> [10,] -145.531 454.068
#> [11,] -142.094 434.113
#>
#> $deusventrue
#> <xy [152 x 2]>
#> [,1] [,2]
#> [1,] -176.414 453.558
#> [2,] -175.378 443.764
#> [3,] -173.306 424.176
#> [4,] -171.405 414.881
#> [5,] -167.467 394.061
#> [6,] ... ...
#> [7,] -190.897 530.644
#> [8,] -188.496 520.484
#> [9,] -185.558 501.395
#> [10,] -183.656 492.101
#> [11,] -178.986 474.013
#>
#> $duvel
#> <xy [161 x 2]>
#> [,1] [,2]
#> [1,] -104.672 303.298
#> [2,] -99.172 293.772
#> [3,] -93.672 284.245
#> [4,] -93.672 284.245
#> [5,] -88.172 274.719
#> [6,] ... ...
#> [7,] -120.414 356.563
#> [8,] -119.244 344.537
#> [9,] -117.708 333.877
#> [10,] -117.708 333.877
#> [11,] -113.940 323.351
#>
#> $franziskaner
#> <xy [124 x 2]>
#> [,1] [,2]
#> [1,] -172.735 407.185
#> [2,] -162.235 388.999
#> [3,] -157.235 380.338
#> [4,] -147.735 363.884
#> [5,] -142.735 355.224
#> [6,] ... ...
#> [7,] -214.038 490.726
#> [8,] -204.405 472.039
#> [9,] -201.137 462.379
#> [10,] -193.235 442.692
#> [11,] -188.235 434.032
#>
#> $grimbergen
#> <xy [126 x 2]>
#> [,1] [,2]
#> [1,] -165.627 370.874
#> [2,] -162.359 361.214
#> [3,] -151.859 343.027
#> [4,] -146.359 333.501
#> [5,] -141.359 324.841
#> [6,] ... ...
#> [7,] -179.414 458.754
#> [8,] -181.538 434.434
#> [9,] -181.235 421.908
#> [10,] -179.699 411.247
#> [11,] -174.395 390.061
#>
#> $guiness
#> <xy [183 x 2]>
#> [,1] [,2]
#> [1,] -132.744 367.920
#> [2,] -128.744 360.992
#> [3,] -124.744 354.063
#> [4,] -120.244 346.269
#> [5,] -112.244 332.413
#> [6,] ... ...
#> [7,] -157.780 419.283
#> [8,] -155.012 410.489
#> [9,] -150.976 395.499
#> [10,] -146.110 389.070
#> [11,] -140.744 381.776
#>
#> $hoegardeen
#> <xy [193 x 2]>
#> [,1] [,2]
#> [1,] -235.627 492.118
#> [2,] -230.859 479.859
#> [3,] -224.859 469.467
#> [4,] -218.359 458.209
#> [5,] -211.859 446.951
#> [6,] ... ...
#> [7,] -259.271 565.070
#> [8,] -256.235 551.811
#> [9,] -252.833 539.919
#> [10,] -249.797 526.661
#> [11,] -244.163 514.902
#>
#> $jupiler
#> <xy [156 x 2]>
#> [,1] [,2]
#> [1,] -209.869 473.503
#> [2,] -203.735 460.879
#> [3,] -197.235 449.620
#> [4,] -190.235 437.496
#> [5,] -183.235 425.372
#> [6,] ... ...
#> [7,] -234.414 554.017
#> [8,] -231.744 539.393
#> [9,] -227.842 526.634
#> [10,] -224.306 512.510
#> [11,] -219.905 498.886
#>
#> $kingfisher
#> <xy [182 x 2]>
#> [,1] [,2]
#> [1,] -130.512 368.054
#> [2,] -125.512 359.394
#> [3,] -121.012 351.599
#> [4,] -116.012 342.939
#> [5,] -111.012 334.279
#> [6,] ... ...
#> [7,] -150.852 423.283
#> [8,] -148.950 413.989
#> [9,] -145.682 404.329
#> [10,] -143.280 394.168
#> [11,] -138.280 385.508
#>
#> $latrappe
#> <xy [136 x 2]>
#> [,1] [,2]
#> [1,] -171.983 349.884
#> [2,] -166.849 338.992
#> [3,] -160.349 327.733
#> [4,] -154.349 317.341
#> [5,] -147.849 306.083
#> [6,] ... ...
#> [7,] -207.751 415.836
#> [8,] -203.849 403.077
#> [9,] -196.983 393.185
#> [10,] -190.483 381.927
#> [11,] -184.483 371.535
#>
#> $lindemanskriek
#> <xy [176 x 2]>
#> [,1] [,2]
#> [1,] -161.538 399.793
#> [2,] -157.538 392.865
#> [3,] -154.369 377.374
#> [4,] -150.735 369.080
#> [5,] -146.735 362.152
#> [6,] ... ...
#> [7,] -176.316 459.388
#> [8,] -174.048 451.460
#> [9,] -172.146 442.166
#> [10,] -169.878 434.238
#> [11,] -165.708 417.015
#>
#> $nicechouffe
#> <xy [146 x 2]>
#> [,1] [,2]
#> [1,] -109.486 353.635
#> [2,] -106.352 346.207
#> [3,] -101.316 329.485
#> [4,] -96.816 321.690
#> [5,] -93.682 314.262
#> [6,] ... ...
#> [7,] -125.862 409.999
#> [8,] -124.460 401.570
#> [9,] -121.692 392.776
#> [10,] -119.924 385.714
#> [11,] -115.388 369.858
#>
#> $pecheresse
#> <xy [129 x 2]>
#> [,1] [,2]
#> [1,] -192.940 460.183
#> [2,] -185.172 442.728
#> [3,] -180.672 434.934
#> [4,] -171.538 417.113
#> [5,] -163.771 399.659
#> [6,] ... ...
#> [7,] -215.522 545.295
#> [8,] -213.120 535.134
#> [9,] -208.450 517.046
#> [10,] -203.280 498.092
#> [11,] -200.512 489.297
#>
#> $sierranevada
#> <xy [176 x 2]>
#> [,1] [,2]
#> [1,] -119.672 329.279
#> [2,] -113.672 318.886
#> [3,] -113.672 318.886
#> [4,] -107.172 307.628
#> [5,] -101.172 297.236
#> [6,] ... ...
#> [7,] -148.940 383.972
#> [8,] -144.172 371.714
#> [9,] -139.905 360.322
#> [10,] -132.172 350.929
#> [11,] -132.172 350.929
#>
#> $tanglefoot
#> <xy [174 x 2]>
#> [,1] [,2]
#> [1,] -141.931 341.831
#> [2,] -137.931 334.903
#> [3,] -133.931 327.975
#> [4,] -125.931 314.119
#> [5,] -121.065 307.690
#> [6,] ... ...
#> [7,] -166.467 392.329
#> [8,] -165.065 383.901
#> [9,] -161.931 376.472
#> [10,] -154.797 362.116
#> [11,] -150.797 355.188
#>
#> $tauro
#> <xy [174 x 2]>
#> [,1] [,2]
#> [1,] -209.003 474.003
#> [2,] -204.735 462.611
#> [3,] -198.735 452.218
#> [4,] -192.235 440.960
#> [5,] -186.235 430.568
#> [6,] ... ...
#> [7,] -232.012 543.857
#> [8,] -228.610 531.965
#> [9,] -226.940 519.072
#> [10,] -222.672 507.680
#> [11,] -217.905 495.422
#>
#> $westmalle
#> <xy [141 x 2]>
#> [,1] [,2]
#> [1,] -136.378 376.214
#> [2,] -132.378 369.286
#> [3,] -126.476 353.063
#> [4,] -122.476 346.135
#> [5,] -114.842 330.913
#> [6,] ... ...
#> [7,] -156.022 442.238
#> [8,] -154.120 432.943
#> [9,] -148.718 417.587
#> [10,] -147.682 407.793
#> [11,] -141.414 392.936
#>
#> $amrut
#> <xy [191 x 2]>
#> [,1] [,2]
#> [1,] -171.137 410.417
#> [2,] -166.137 401.757
#> [3,] -161.137 393.097
#> [4,] -156.137 384.436
#> [5,] -151.137 375.776
#> [6,] ... ...
#> [7,] -202.869 461.379
#> [8,] -196.137 453.718
#> [9,] -191.137 445.058
#> [10,] -186.137 436.398
#> [11,] -181.137 427.738
#>
#> $ballantines
#> <xy [146 x 2]>
#> [,1] [,2]
#> [1,] -145.591 328.171
#> [2,] -137.591 314.315
#> [3,] -133.591 307.386
#> [4,] -126.091 294.396
#> [5,] -122.091 287.468
#> [6,] ... ...
#> [7,] -181.091 389.659
#> [8,] -173.091 375.802
#> [9,] -169.091 368.874
#> [10,] -161.091 355.018
#> [11,] -157.591 348.956
#>
#> $bushmills
#> <xy [165 x 2]>
#> [,1] [,2]
#> [1,] -165.646 430.908
#> [2,] -158.146 417.917
#> [3,] -150.146 404.061
#> [4,] -150.146 404.061
#> [5,] -142.646 391.070
#> [6,] ... ...
#> [7,] -205.878 496.592
#> [8,] -198.378 483.601
#> [9,] -190.378 469.745
#> [10,] -190.378 469.745
#> [11,] -182.878 456.754
#>
#> $chivas
#> <xy [164 x 2]>
#> [,1] [,2]
#> [1,] -189.921 394.953
#> [2,] -187.653 387.025
#> [3,] -180.885 371.302
#> [4,] -176.885 364.374
#> [5,] -168.885 350.518
#> [6,] ... ...
#> [7,] -180.852 475.245
#> [8,] -184.280 465.183
#> [9,] -189.637 442.460
#> [10,] -190.833 432.532
#> [11,] -191.859 412.310
#>
#> $dalmore
#> <xy [155 x 2]>
#> [,1] [,2]
#> [1,] -140.467 347.295
#> [2,] -138.797 334.403
#> [3,] -134.895 321.645
#> [4,] -130.627 310.252
#> [5,] -124.627 299.860
#> [6,] ... ...
#> [7,] -126.665 423.391
#> [8,] -126.665 423.391
#> [9,] -132.424 407.365
#> [10,] -137.316 391.838
#> [11,] -139.976 376.446
#>
#> $famousgrouse
#> <xy [169 x 2]>
#> [,1] [,2]
#> [1,] -70.763 320.566
#> [2,] -65.763 311.906
#> [3,] -61.263 304.111
#> [4,] -56.263 295.451
#> [5,] -56.263 295.451
#> [6,] ... ...
#> [7,] -96.496 361.135
#> [8,] -91.496 352.475
#> [9,] -91.496 352.475
#> [10,] -86.996 344.681
#> [11,] -81.996 336.020
#>
#> $glendronach
#> <xy [197 x 2]>
#> [,1] [,2]
#> [1,] -154.280 413.221
#> [2,] -148.280 402.829
#> [3,] -141.414 392.936
#> [4,] -141.414 392.936
#> [5,] -135.414 382.544
#> [6,] ... ...
#> [7,] -185.146 464.683
#> [8,] -179.146 454.290
#> [9,] -172.280 444.398
#> [10,] -172.280 444.398
#> [11,] -166.280 434.006
#>
#> $glenmorangie
#> <xy [179 x 2]>
#> [,1] [,2]
#> [1,] -213.101 475.101
#> [2,] -203.735 460.879
#> [3,] -203.735 460.879
#> [4,] -195.735 447.022
#> [5,] -186.369 432.800
#> [6,] ... ...
#> [7,] -245.806 549.749
#> [8,] -241.771 534.759
#> [9,] -236.735 518.036
#> [10,] -229.101 502.814
#> [11,] -229.101 502.814
#>
#> $highlandpark
#> <xy [169 x 2]>
#> [,1] [,2]
#> [1,] -149.127 342.295
#> [2,] -142.127 330.171
#> [3,] -142.127 330.171
#> [4,] -135.127 318.047
#> [5,] -128.127 305.922
#> [6,] ... ...
#> [7,] -184.993 402.417
#> [8,] -177.127 390.793
#> [9,] -170.127 378.668
#> [10,] -163.127 366.544
#> [11,] -163.127 366.544
#>
#> $jackdaniels
#> <xy [150 x 2]>
#> [,1] [,2]
#> [1,] -152.440 390.035
#> [2,] -145.940 378.776
#> [3,] -139.440 367.518
#> [4,] -132.940 356.260
#> [5,] -126.440 345.001
#> [6,] ... ...
#> [7,] -185.878 461.951
#> [8,] -180.610 448.826
#> [9,] -176.708 436.068
#> [10,] -171.074 424.310
#> [11,] -163.708 413.551
#>
#> $jb
#> <xy [174 x 2]>
#> [,1] [,2]
#> [1,] -228.261 481.359
#> [2,] -222.761 471.833
#> [3,] -218.627 462.673
#> [4,] -207.627 443.620
#> [5,] -201.261 434.594
#> [6,] ... ...
#> [7,] -266.627 545.811
#> [8,] -262.859 535.285
#> [9,] -256.127 527.625
#> [10,] -244.261 509.072
#> [11,] -238.761 499.546
#>
#> $johnniewalker
#> <xy [168 x 2]>
#> [,1] [,2]
#> [1,] 27.681 218.054
#> [2,] 29.681 214.590
#> [3,] 31.681 211.126
#> [4,] 33.681 207.662
#> [5,] 38.547 201.234
#> [6,] ... ...
#> [7,] 13.681 242.303
#> [8,] 15.681 238.839
#> [9,] 19.681 231.911
#> [10,] 21.681 228.447
#> [11,] 23.681 224.983
#>
#> $magallan
#> <xy [141 x 2]>
#> [,1] [,2]
#> [1,] -130.950 382.812
#> [2,] -123.450 369.822
#> [3,] -118.218 364.760
#> [4,] -111.218 352.635
#> [5,] -102.852 340.145
#> [6,] ... ...
#> [7,] -166.048 437.604
#> [8,] -162.548 431.542
#> [9,] -155.548 419.417
#> [10,] -146.316 407.427
#> [11,] -142.816 401.365
#>
#> $makersmark
#> <xy [177 x 2]>
#> [,1] [,2]
#> [1,] -189.153 389.623
#> [2,] -190.081 375.231
#> [3,] -190.144 361.338
#> [4,] -190.144 361.338
#> [5,] -185.742 347.714
#> [6,] ... ...
#> [7,] -175.084 461.254
#> [8,] -172.414 446.630
#> [9,] -173.976 435.336
#> [10,] -173.976 435.336
#> [11,] -181.101 419.676
#>
#> $oban
#> <xy [179 x 2]>
#> [,1] [,2]
#> [1,] -164.414 432.774
#> [2,] -159.914 424.979
#> [3,] -151.414 410.257
#> [4,] -147.414 403.329
#> [5,] -142.914 395.535
#> [6,] ... ...
#> [7,] -196.146 483.735
#> [8,] -190.780 476.441
#> [9,] -186.780 469.513
#> [10,] -182.280 461.718
#> [11,] -173.780 446.996
#>
#> $oldpotrero
#> <xy [131 x 2]>
#> [,1] [,2]
#> [1,] -81.620 307.370
#> [2,] -82.816 297.442
#> [3,] -84.012 287.513
#> [4,] -82.440 268.791
#> [5,] -80.538 259.497
#> [6,] ... ...
#> [7,] -79.943 376.465
#> [8,] -77.675 368.537
#> [9,] -77.505 358.243
#> [10,] -79.031 338.886
#> [11,] -79.728 328.092
#>
#> $redbreast
#> <xy [177 x 2]>
#> [,1] [,2]
#> [1,] -25.567 254.284
#> [2,] -24.799 248.954
#> [3,] -24.531 244.490
#> [4,] -22.130 234.329
#> [5,] -20.130 230.865
#> [6,] ... ...
#> [7,] -11.855 294.533
#> [8,] -14.185 288.569
#> [9,] -16.515 282.604
#> [10,] -20.809 272.042
#> [11,] -23.139 266.078
#>
#> $tamdhu
#> <xy [176 x 2]>
#> [,1] [,2]
#> [1,] -233.565 502.546
#> [2,] -227.565 492.154
#> [3,] -221.065 480.895
#> [4,] -215.065 470.503
#> [5,] -209.065 460.111
#> [6,] ... ...
#> [7,] -272.663 564.266
#> [8,] -268.395 552.874
#> [9,] -261.529 542.981
#> [10,] -254.663 533.089
#> [11,] -247.797 523.197
#>
#> $wildturkey
#> <xy [185 x 2]>
#> [,1] [,2]
#> [1,] -268.912 501.768
#> [2,] -261.912 489.644
#> [3,] -254.912 477.520
#> [4,] -247.912 465.395
#> [5,] -240.912 453.271
#> [6,] ... ...
#> [7,] -308.179 573.783
#> [8,] -303.412 561.524
#> [9,] -299.510 548.766
#> [10,] -292.510 536.642
#> [11,] -285.510 524.517
#>
#> $yoichi
#> <xy [123 x 2]>
#> [,1] [,2]
#> [1,] -132.244 367.054
#> [2,] -124.744 354.063
#> [3,] -117.744 341.939
#> [4,] -110.244 328.949
#> [5,] -102.744 315.958
#> [6,] ... ...
#> [7,] -169.610 429.774
#> [8,] -166.110 423.711
#> [9,] -158.610 410.721
#> [10,] -151.610 398.597
#> [11,] -143.244 386.106
#>
#> attr(,"class")
#> [1] "out" "coo" "list"
# Rotate tibble shapes
coo_rotate(bot, theta = pi / 8)
#> # A tibble: 40 × 3
#> coo type dummy
#> <out> <fct> <fct>
#> 1 (138 x 2) whisky a
#> 2 (168 x 2) whisky a
#> 3 (189 x 2) whisky a
#> 4 (129 x 2) whisky a
#> 5 (152 x 2) whisky a
#> 6 (161 x 2) whisky a
#> 7 (124 x 2) whisky a
#> 8 (126 x 2) whisky a
#> 9 (183 x 2) whisky a
#> 10 (193 x 2) whisky a
#> # ℹ 30 more rows
