小编mrj*_*ogo的帖子

找到两个椭圆的交点(Python)

我正在用Python编写一个基本的2D形状库(主要用于操作SVG绘图),我对如何有效地计算两个椭圆的交点感到茫然.

每个椭圆由以下变量(所有浮点数)定义:

c: center point (x, y)
hradius: "horizontal" radius
vradius: "vertical" radius
phi: rotation from coordinate system's x-axis to ellipse's horizontal axis
Run Code Online (Sandbox Code Playgroud)

忽略椭圆相同时,可能有0到4个交点(没有交点,切线,部分重叠,部分重叠和内部切线,并且完全重叠).

我发现了一些潜在的解决方案:

关于如何计算交叉点的任何建议?速度(它可能需要计算很多交叉点)和优雅是主要标准.代码会很棒,但即使是一个好的方向也会有所帮助.

python geometry intersection ellipse shapes

6
推荐指数
1
解决办法
7329
查看次数

适用于许多 apt-get 软件包的高效 Dockerfile

我为正在构建的应用程序创建了一个 Dockerfile,该应用程序具有大量大型 apt-get 包依赖项。它看起来像这样:

FROM ubuntu:15.10

RUN apt-get update && apt-get install -y \
  lots-of-big-packages

RUN install_my_code.sh
Run Code Online (Sandbox Code Playgroud)

当我开发应用程序时,我不断地遇到意想不到的包依赖项。然而,由于所有包都在一条 Dockerfile 指令中,即使再添加一条也会破坏缓存,并需要下载并安装整个包,这会花费很长时间。我想知道是否有更好的方法来构建我的 Dockerfile?

一种想法是RUN apt-get update && apt-get install -y为每个包放置一个单独的命令,但多次运行 apt-get update 可能会耗尽所有节省的资金。

最简单的解决方案是在第一个包之后添加第二个RUN apt-get update && apt-get install -y包,作为所有意外包的包罗万象,但这以一种不直观的方式划分包。(即,“当我意识到我需要它时”)我想当依赖关系更稳定时我可以将它们组合起来,但我发现我总是对此过于乐观。

无论如何,如果有人有更好的方法来构建它,我很乐意听到。(我的所有其他想法都违背了 Docker 的可重复性原则)

docker dockerfile

5
推荐指数
1
解决办法
3021
查看次数

python - 将 BaseHTTPRequestHandler 与 UnixStreamServer 一起使用会导致异常

我正在尝试创建一个绑定到 Unix 域套接字的基本 HTTP 服务器,但是将 BaseHTTPRequestHandler 子类与 UnixStreamServer 一起使用会创建一个异常,表明它们不能一起工作。

玩具服务器.py:

from SocketServer import UnixStreamServer
from BaseHTTPServer import BaseHTTPRequestHandler

class MyHandler(BaseHTTPRequestHandler):
  def do_GET(self):
    self.send_response(200)
    self.send_header("Content-Type", "text/plain")
    self.end_headers()
    self.wfile.write("Hi!")

server = UnixStreamServer('./mysocket.sock', MyHandler)
server.serve_forever()
Run Code Online (Sandbox Code Playgroud)

然后我发送一个带有 的请求curl --unix-socket ./mysocket.sock http:/hello,这会导致服务器上出现以下异常(使用 Python 2.7.11):

Exception happened during processing of request from 
Traceback (most recent call last):
  File "/usr/lib/python2.7/SocketServer.py", line 290, in _handle_request_noblock
    self.process_request(request, client_address)
  File "/usr/lib/python2.7/SocketServer.py", line 318, in process_request
    self.finish_request(request, client_address)
  File "/usr/lib/python2.7/SocketServer.py", line 331, in finish_request
    self.RequestHandlerClass(request, client_address, self)
  File "/usr/lib/python2.7/SocketServer.py", …
Run Code Online (Sandbox Code Playgroud)

python sockets unix-socket basehttprequesthandler

4
推荐指数
1
解决办法
1575
查看次数