geometry - 如何找到屋顶三角形的坐标?
问题描述
我想把图片中的那个蓝色三角形放在我的红房子上。我一直在输入随机数,但我无法正确输入。问题出在 Gosu.draw_triangle 部分。人们说这个网站会帮助 https://www.rubydoc.info/github/gosu/gosu/master/Gosu.draw_triangle 但我没有从中得到任何好处。
def initialize
def initialize
super(800, 600, false)
end
def draw
Gosu.draw_rect(310, 300, 200, 150, Gosu::Color::RED, ZOrder::TOP, mode=:default)
Gosu.draw_rect(385, 380, 50, 70, Gosu::Color::BLUE, ZOrder::TOP, mode=:default)
Gosu.draw_rect(460, 335, 35, 35, Gosu::Color::BLUE, ZOrder::TOP, mode=:default)
Gosu.draw_rect(0, 450, 1000, 400, Gosu::Color::GREEN, ZOrder::TOP, mode=:default)
Gosu.draw_rect(200, 100, 100, 45, Gosu::Color::WHITE, ZOrder::TOP, mode=:default)
Gosu.draw_rect(100 , 350, 45, 120, 0xff_AC5B13 , ZOrder::TOP, mode=:default)
Gosu.draw_triangle(20, 30, Gosu::Color::BLUE, 440, 230, Gosu::Color::BLUE, 50, 345, Gosu::Color::BLUE, ZOrder::TOP, mode=:default)
解决方案
要将蓝色三角形放置在房屋顶部,您需要使三角形的两个顶点的 Y 坐标与矩形顶部相同。
需要的矩形顶点:ToplLeft, TopRight
三角形顶点:
X1 = ToplLeft.X - OverhangSize
Y1 = ToplLeft.Y
X2 = ToplRight.X + OverhangSize
Y2 = ToplLeft.Y
X3 = (ToplLeft.X + ToplRight.X) / 2 //average vor symmetric roof
Y3 = ToplLeft.Y - RoofHeight
推荐阅读
- javascript - 在 JS 中切换大小写中断和未定义的值
- javascript - 引导模式中的动态数据属性
- html - 如何使用 vue 组件模板重定向到另一个页面
- python - 在变量中定义循环时出现语法错误(PYTHON)
- sql - 获取以逗号分隔的列中的唯一值
- java - 在java“public boolean methodF1()”中多次覆盖布尔返回函数是否是最佳实践
- regex - 正则表达式从字符串中提取数字
- swift - 我的 SKTexture 尺寸不适合我的 SKSpriteNode
- javascript - ReactJS 如何在由另一个渲染函数动态渲染的组件上使用 Refs 来聚焦元素?
- php - 如何解决 Docker 容器中的 Laravel RuntimeException