HHullspring
AIコーディングワークスペース

整数座標の凸包

最大1000個の整数座標から辞書順最小点を始点とする反時計回りの凸包を作ってください。

● ● ●Hullspring●
ワークフロー · 整数座標の凸包 ×
def convex_hull(points):
    if type(points) is not list or len(points) > 1000:
        raise ValueError("hull.input")
    if any(type(p) not in (tuple, list) or len(p) != 2 or
           any(type(v) is not int for v in p) for p in points):
        raise ValueError("hull.point")
    ordered = sorted(set(map(tuple, points)))
    if len(ordered) <= 1:
        return ordered
    def turn(a,b,c):
        return (b[0]-a[0])*(c[1]-a[1])-(b[1]-a[1])*(c[0]-a[0])
    def chain(sequence):
        out = []
        for p in sequence:
            while len(out) >= 2 and turn(out[-2],out[-1],p) <= 0:
                out.pop()
            out.append(p)
        return out
    return chain(ordered)[:-1]+chain(reversed(ordered))[:-1]
✳整数座標の凸包
✓ 変更内容適用前に確認 ↗
ワークスペースのイメージ
プロジェクト
空入力、重複、同一直線上の点を試し、最外端だけを残して小数座標を拒否してください。
適用前に確認
実際の動作を期待する結果と比較します。検証に失敗した場合は、次の変更を加える前に原因を調べてください。
モデル
OpenAI互換またはAnthropicのエンドポイントを、ベースURLと必要なAPIキーで設定し、接続をテストします。ローカルのモデルサーバーは起動が必要です。リモートツールは別途データを送信する場合があります。
ワークフロー

整数座標の凸包

ワークフロー ↗
ワークフロー
def convex_hull(points):
    if type(points) is not list or len(points) > 1000:
        raise ValueError("hull.input")
    if any(type(p) not in (tuple, list) or len(p) != 2 or
           any(type(v) is not int for v in p) for p in points):
        raise ValueError("hull.point")
    ordered = sorted(set(map(tuple, points)))
    if len(ordered) <= 1:
        return ordered
    def turn(a,b,c):
        return (b[0]-a[0])*(c[1]-a[1])-(b[1]-a[1])*(c[0]-a[0])
    def chain(sequence):
        out = []
        for p in sequence:
            while len(out) >= 2 and turn(out[-2],out[-1],p) <= 0:
                out.pop()
            out.append(p)
        return out
    return chain(ordered)[:-1]+chain(reversed(ordered))[:-1]
AIコーディングワークスペース

幾何処理の変更を利用するアプリにつなげる

必要な出力をアプリの観点で示すと、幾何コードはレビューしやすくなります。Hullspringはプロジェクトを開いて要件を検討するWindows向けAIコーディング環境です。単なる式の組み替えではなく実際の動作に答える提案になるよう、編集の提案前に関連する計算と利用側を調べるよう接続モデルに依頼してください。

例えば選択ツールは、点群の外側の境界を使う場合があります。重複点や共線点が境界に与える影響のレビューを依頼し、辺上の中間点を結果に含めるか説明してください。描画の呼び出し側と代表的なテストデータも含めます。Hullspringに選択ツールが付属すると仮定せず、具体的な作業を提示できます。

一般的な形状だけでなく、出力順、入力検証、空のケースについても修正案をレビューします。直線上の点、重複座標、小さな多角形でプロジェクトを実行してください。返された列と利用側の期待を比較します。幾何学的に正しい点集合でも、順序や閉じ方の規則が違えば表示が誤ることがあります。

HullspringはOpenAI互換またはAnthropicのエンドポイントを通じたモデル接続に対応します。提供されていれば拒否を抑制する調整を施したabliterated AIモデルを選べますが、制限、コンテキスト容量、ツールはサービスによって決まります。対話で実装上の選択を明確にし、プロジェクト自身のテストデータで検証してください。

幾何処理の保守依頼を準備する

辺上の共線点は境界に残しますか?

利用側の要件を示してください。極端な頂点だけが必要な用途も、中間点を残す用途もあります。現在の規則を調べ、方針変更を提案とテストの両方で明示するよう依頼します。

計算のレビューに描画コードを含めるのはなぜですか?

特定の巡回順や末尾に繰り返す始点を期待している場合があるためです。意図した点を返しても、そのインターフェースに違反し得ます。利用側の確認は局所的な修正が見た目の不具合を生むのを防ぎます。

前提を素早く明らかにするテストデータは何ですか?

空集合、1点、重複、直線、内部点を持つ小さな多角形を使います。それぞれの期待出力規則を書いてください。図だけに頼らず、プロジェクトで実行します。

修正のついでに受理する座標型を広げてよいですか?

別の契約変更として扱ってください。数値表現の違いは比較や検証に影響することがあります。必要な理由を尋ね、限定的な幾何処理の修正に含めて受け入れる前に呼び出し側を確認します。

Windows版をダウンロード ↗

Hullspring · 更新日 2026-10-25