• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

[Python3] 超级码力在线编程大赛初赛 第2场 题解

python 搞java代码 3年前 (2022-05-21) 33次浏览 已收录 0个评论

P1 三角魔法

描述
小栖必须在一个三角形中才能施展魔法,现在他知道自己的坐标和三个点的坐标,他想知道他能否施展魔法

  • 点在边上也属于三角形内
  • 109<=x,y<=109-10^{9}<=x, y<=10^{9}109<=x,y<=109

解:

  • 判断是否共线
  • 判断是否在三角形内

补充知识(好久之前学的,早忘了):

  1. 判断是否共线
    对于三个点(x0,y0)(x0, y0)(x0,y0) ,(x1,y1)(x1, y1)(x1,y1) ,(x2,y2)(x2, y2)(x2,y2) ,如果满足(y3y1)(x2x1)(y2y1)(x3x1)=0(y 3-y 1)(x 2-x 1)-(y 2-y 1)(x 3-x 1)=0(y3y1)(x2x1)(y2y1)(x3x1)=0, 那么这三点共线。

  2. 判断是否在三角形内:
    判断PPP是否在AB,CA,B, CAB,C组成的三角形内。 如果在三角形内,则:
    AP=u×(AB)+v×ACA P=u imes(A B)+v imes A CAP=u×(AB)+v×AC
    满足0u,v10 leq u,v leq 10u,v1, 且u+v1u+vleq 1u+v1。

    v=x2y0y2x0x1y0y1x0v=frac{x_{2} y_{0}-y_{2} x_{0}}{x_{1} y_{0}-y_{1} x_{0}}v=x1y0y1x0x2y0y2x0
    u=x2y1y2x1x0y1y0x1u=frac{x_{2} y_{1}-y_{2} x_{1}}{x_{0} y_{1}-y_{0} x_{1}}u=x


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:[Python3] 超级码力在线编程大赛初赛 第2场 题解
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址