{"image_url":null,"blog_title":"\u674f\u30c6\u30c3\u30af","published":"2009-08-12 02:17:58","provider_name":"Hatena Blog","type":"rich","categories":["\u8a08\u7b97\u5e7e\u4f55","Ruby"],"height":"190","blog_url":"https://anztec.hatenadiary.org/","author_name":"anztec","description":"\u3068\u308a\u3042\u3048\u305a\u30c6\u30ad\u30b9\u30c8\u300e\u30a2\u30eb\u30b4\u30ea\u30ba\u30e0C\u7b2c\u4e8c\u5dfb\u300famazon:4764902567\u3092\u5199\u3057\u307e\u3057\u305f\u3002 module GeoUtil module_function # \u7dda\u5206p0p1\u3092\u57fa\u6e96\u306b\u3057\u3066\u3001\u7dda\u5206p0p2\u304c # \u53cd\u6642\u8a08\u56de\u308a\u306e\u5411\u304d\u306b\u3042\u308c\u3070+1 # \u6642\u8a08\u56de\u308a\u306e\u5411\u304d\u306b\u3042\u308c\u3070-1 def ccw(p0, p1, p2) dx1 = p1.x - p0.x; dy1 = p1.y - p0.y dx2 = p2.x - p0.x; dy2 = p2.y - p0.y return +1 if dx1*dy2 > dy1*dx2 return -1 if dx1*dy2 < dy1*dx2 return -1 i\u2026","version":"1.0","html":"<iframe src=\"https://hatenablog-parts.com/embed?url=https%3A%2F%2Fanztec.hatenadiary.org%2Fentry%2F20090812%2F1250097478\" title=\" Ruby/SDL\u3067\u8a08\u7b97\u5e7e\u4f55(1)\u7dda\u5206\u304c\u4ea4\u5dee\u3057\u3066\u3044\u308b\u304b\u5224\u5b9a\u3059\u308b - \u674f\u30c6\u30c3\u30af\" class=\"embed-card embed-blogcard\" scrolling=\"no\" frameborder=\"0\" style=\"display: block; width: 100%; height: 190px; max-width: 500px; margin: 10px 0px;\"></iframe>","url":"https://anztec.hatenadiary.org/entry/20090812/1250097478","author_url":"https://blog.hatena.ne.jp/anztec/","title":" Ruby/SDL\u3067\u8a08\u7b97\u5e7e\u4f55(1)\u7dda\u5206\u304c\u4ea4\u5dee\u3057\u3066\u3044\u308b\u304b\u5224\u5b9a\u3059\u308b","width":"100%","provider_url":"https://hatena.blog"}