less copy protection, more size visualization
Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.
 
 
 

148 lignes
3.8 KiB

  1. function makeLandmark(name, height, image) {
  2. views = {
  3. building: {
  4. attributes: {
  5. height: {
  6. name: "Height",
  7. power: 1,
  8. type: "length",
  9. base: height
  10. }
  11. },
  12. image: image,
  13. name: "building"
  14. },
  15. };
  16. return makeEntity({ name: name }, views);
  17. }
  18. function makeLandmarks() {
  19. const results = [];
  20. results.push({
  21. name: "Burj Khalifa",
  22. constructor: () => makeLandmark(
  23. "Burj Khalifa",
  24. math.unit(829.8, "meter"),
  25. { source: "./media/landmarks/burj-khalifa.svg" }
  26. )
  27. });
  28. results.push({
  29. name: "Canton Tower",
  30. constructor: () => makeLandmark(
  31. "Canton Tower",
  32. math.unit(604, "meter"),
  33. { source: "./media/landmarks/canton-tower.svg" }
  34. )
  35. });
  36. results.push({
  37. name: "CN Tower",
  38. constructor: () => makeLandmark(
  39. "CN Tower",
  40. math.unit(553.3, "meter"),
  41. { source: "./media/landmarks/cn-tower.svg" }
  42. )
  43. });
  44. results.push({
  45. name: "Taipei 101",
  46. constructor: () => makeLandmark(
  47. "Taipei 101",
  48. math.unit(509.2, "meter"),
  49. { source: "./media/landmarks/taipei-101.svg" }
  50. )
  51. });
  52. results.push({
  53. name: "Empire State Building",
  54. constructor: () => makeLandmark(
  55. "Empire State Building",
  56. math.unit(443.2, "meter"),
  57. { source: "./media/landmarks/empire-state-building.svg" }
  58. )
  59. });
  60. results.push({
  61. name: "Eiffel Tower",
  62. constructor: () => makeLandmark(
  63. "Eiffel Tower",
  64. math.unit(324, "meter"),
  65. { source: "./media/landmarks/eiffel-tower.svg" }
  66. )
  67. });
  68. results.push({
  69. name: "Chrysler Building",
  70. constructor: () => makeLandmark(
  71. "Chrysler Building",
  72. math.unit(318.9, "meter"),
  73. { source: "./media/landmarks/chrysler-building.svg" }
  74. )
  75. });
  76. results.push({
  77. name: "Gateway Arch",
  78. constructor: () => makeLandmark(
  79. "Gateway Arch",
  80. math.unit(630, "feet"),
  81. { source: "./media/landmarks/gateway-arch.svg" }
  82. )
  83. });
  84. results.push({
  85. name: "Washington Monument",
  86. constructor: () => makeLandmark(
  87. "Washington Monument",
  88. math.unit(555 + 5 / 12, "feet"),
  89. { source: "./media/landmarks/washington-monument.svg" }
  90. )
  91. });
  92. results.push({
  93. name: "Great Pyramid of Giza",
  94. constructor: () => makeLandmark(
  95. "Great Pyramid of Giza",
  96. math.unit(146, "meters"),
  97. { source: "./media/landmarks/pyramid.svg" }
  98. )
  99. });
  100. results.push({
  101. name: "Statue of Liberty",
  102. constructor: () => makeLandmark(
  103. "Statue of Liberty",
  104. math.unit(305.5, "feet"),
  105. { source: "./media/landmarks/statue-of-liberty.svg" }
  106. )
  107. });
  108. results.push({
  109. name: "Leaning Tower of Pisa",
  110. constructor: () => makeLandmark(
  111. "Leaning Tower of Pisa",
  112. math.unit(185.93, "feet"),
  113. { source: "./media/landmarks/leaning-tower-of-pisa.svg", bottom: 84 / 3755 }
  114. )
  115. });
  116. results.push({
  117. name: "Elizabeth Tower",
  118. constructor: () => makeLandmark(
  119. "Elizabeth Tower",
  120. math.unit(315, "feet"),
  121. { source: "./media/landmarks/elizabeth-tower.svg" }
  122. )
  123. });
  124. results.sort((b1, b2) => {
  125. e1 = b1.constructor();
  126. e2 = b2.constructor();
  127. return -math.subtract(e1.views[e1.defaultView].height, e2.views[e2.defaultView].height).value;
  128. });
  129. return results;
  130. }