タグ付けされた質問 「geometry」

この課題は、形状やその他の幾何学的構造を使用、操作、または作成することで解決することを目的としています。

6
2D凸包の面積
2Dユークリッド平面上の点のデカルト座標を表す整数のペアの配列/リスト/ベクトルが与えられます。すべての座標はから、重複が許可されます。最も近い整数に丸められた、これらの点の凸包の面積を見つけます。正確な中間点は、最も近い偶数の整数に丸められる必要があります。最終結果が常に正しいことを保証できる場合にのみ、中間計算で浮動小数点数を使用できます。これはcode-golfなので、最短の正しいプログラムが勝ちます。(x 、y)(x,y)(x, y)− 104−104−10^410410410^4 凸包点の組の含ま最小の凸集合である。ユークリッド平面では、任意の単一の点に対して、それ自体が点です。2つの異なるポイントの場合は、それらを含む線、3つの非共線のポイントの場合は、それらが形成する三角形などです。PPPPPP(x 、y)(x,y)(x,y) 凸包が何であるかを視覚的に説明するには、すべてのポイントを木製ボードの釘として想像してから、すべてのポイントを囲むように輪ゴムを伸ばします。 いくつかのテストケース: Input: [[50, -13]] Result: 0 Input: [[-25, -26], [34, -27]] Result: 0 Input: [[-6, -14], [-48, -45], [21, 25]] Result: 400 Input: [[4, 30], [5, 37], [-18, 49], [-9, -2]] Result: 562 Input: [[0, 16], [24, 18], [-43, 36], [39, -29], [3, …

20
月の2点間の距離
月(lat1, lon1)と上の2つのポイントの緯度/経度を指定して、haversineの式と同じ結果を与える式を(lat2, lon2)使用して、2つのポイント間の距離をキロメートルで計算します。 入力 lat1, lon1, lat2, lon2度(角度)の4つの整数値または ϕ1, λ1, ϕ2, λ2ラジアン単位の4つの10進数値。 出力 2つのポイント間の距離(キロメートル単位、精度または丸められた整数)。 ハーバーシン式 どこ r は球体の半径です(月の半径が1737 kmであると仮定)、 ϕ1 ラジアン単位のポイント1の緯度 ϕ2 ラジアン単位のポイント2の緯度 λ1 ラジアン単位のポイント1の経度 λ2 ラジアン単位のポイント2の経度 d 2点間の循環距離 (ソース:https : //en.wikipedia.org/wiki/Haversine_formula) 他の可能な式 d = r * acos(sin ϕ1 sin ϕ2 + cos ϕ1 cos ϕ2 cos(λ2 - λ1)) @milesの式。 …

2
六角形座標:極座標からデカルト座標
ウィキペディアは極座標について述べています: 数学では、極座標系は2次元の座標系であり、平面上の各点は、基準点からの距離と基準方向からの角度によって決定されます。 これは、六角形のグリッドを記述するのに最適のようです。たとえば、次の六角形のグリッドを考えてみましょう。 A B C D E F G H I J K L M N O P Q R S 基準点は六角形の中心(「J」)になり、基準角は六角形の左上隅(「A」)になります。ただし、角度は、角度ではなく、このポイントから六角形の外側を回る時計回りのステップ数で説明します。したがって、角度ではなく「ステップ番号」と呼びます。 たとえば、「C」は半径が2(中心から2リング離れているため「J」)であり、ステップ番号が2(「A」から時計回りに2つ前方)であるため、(2、2)にあります。 ')。同様に、「O」は(1、3)にあります。これは、中心から1リング離れているため、「E」(基準角度上)から時計回りに3歩進むためです。 完全を期すために、「J」は(0、0)にあります。これに到達するには0歩、時計回りに0歩が必要です。 これで、デカルト座標で六角形を記述することもできますが、オフセットのため、これは少し奇妙です。極座標と同様に、中心を(0、0)に置きます。各スペースも座標を占めるため、「K」は(1、0)ではなく(2、0)にあります。これにより、(-2、2)に「A」、(1、-1)に「O」が配置されます。 チャレンジ 極座標の六角形座標を指定して、デカルト座標で同じ座標を出力します。これらの座標を取り、適切な形式で回答を出力できます。これは、必要に応じて入力の順序を逆にすることができることを意味します。これはまた、座標を(Y、X)として出力できることを意味しますが、そうする場合は、混乱を避けるために回答にこれを記載してください。 負の半径を処理する必要はありませんが、負の角度、または六角形の周りの完全な回転以上の角度を取得する場合があります。たとえば、入力として(1、10)または(1、-2)を受け取る場合があります。これらは両方とも前の六角形の「N」に対応します。入力のために非整数を処理する必要はありません。 サンプルIO #Polar #Cartesian (0, 0) (0, 0) (1, 2) (2, 0) (6, 0) (-6, 6) (2, -3) (-3, -1) (4, …

14
海で迷子になって助けて!
前書き 今日、私はカヌーと一緒に一人で釣りに行きました。残念なことに、私は眠りに落ち、小川が私を連れ去り、オールを失いました。海岸が見えないので遠くに行かなければなりません! 私は携帯電話を持っていますが、塩水で濡れたために故障しています。マイクと電話のスピーカーが壊れているため、何も話せず、聞こえませんが、海岸のビーチにいる友人にSMSを送信できます! 私の友人は非常に強力なトーチを持っていて、彼は正しい方向を示すために竹の杖の上にそれを上げましたが、私はオールを持っていないのでrowいできません。キャッチ! 友人は、トーチを海面の11.50メートルに維持していると言ったので、地平線のすぐ上に光が見えます。今、私は学校から地球の半径が海面で6371 Kmであるべきだと覚えているだけです。そして、私はカヌーに座っているので、私の目も海面にあると仮定できます。 仕事 潮流が刻々と私を動かしているので、私の友人は時々トーチを上げています(現在は12.30メートルです)。私の友人の位置からの距離を計算するのに役立つ完全なプログラムまたは関数を書いてください! 以下に図を示します(縮尺どおりではありません)。 ラベルの付いたオレンジ色の点Mは私、ラベルの付いた赤い点Tはトーチです。緑の線は、Mとの間の直線距離ですT 入力 標準入力からh、水平線の真上にあるトーチの高さをメートル単位で取得します。 0から100の範囲が含まれます。 出力 緑色の線のユークリッド長を1 cmの精度で返す必要があります。たとえば、メートル単位で出力する場合は、小数点以下2桁にする必要があります(少なくとも)。出力はメートルまたはキロメートルのいずれかですが、精度を尊重します。 テストケース: すべての値はメートルです。 11.5 > 12105.08 13.8 > 13260.45 ルール 最短のコードが優先されます。

11
これらの正方形は重なりますか?
2つの正方形の左上隅の座標とその辺の長さを考慮して、正方形が重なるかどうかを判断します。正方形には上下の線が含まれますが、下と右の線は含まれません。つまり、点(a,b)はk、(x,y)ifおよびの場合にのみ辺の長さを持つ正方形の内側にx <= a < x+kありy <= b < y+kます。辺の長さが0の正方形は縮退しているため、ここでは考慮されないため、k正になります。 通常どおり、すべての標準ルールが適用されます。入力と出力は、人間が読める形式であり、事前計算がない限り、どんな形式でも便利です。使用する入力形式を必ず指定してください。コードは6つの数字を取り、正方形が重なる場合は真実を出力し、そうでない場合は偽を出力する必要があります。 テストケース x1 y1 k1 x2 y2 k2 overlap? 1 1 1 0 1 1 false 0 0 3 1 1 1 true 1 1 1 0 0 3 true 0 0 3 2 1 2 true 0 0 2 1 …

8
ファイの三角形を描く
明確化:基本的に、これを作成する必要があります オイラーのtotient関数の名前はphiです。 phi(8)を計算してみましょう まず、0以下を含まない、8以下のすべての数字を後方にリストします 8 7 6 5 4 3 2 1 次に、8と因子を共有しない数字を見つけ(1はカウントしません)、その場所にa #を配置します。 8 # 6 # 4 # 2 # 数字を削除します。 # # # # - これを行いますが、出力を三角形にまとめます 9 88 777 6666 55555 444444 3333333 22222222 111111111 --------- 123456789 # 非因子共有番号を出力する 9 8# 7## 6#66 5#### 4#4#4# 3##3##3 2#2#2#2# …

3
位置を三辺測量する
前書き あなたが2次元のデカルト平面上にいて、その上で自分の位置を判断したいと想像してください。その平面上の3つのポイントとそれぞれの距離を知っています。それからあなたの位置を計算することは常に可能ですが、あなたの頭の中でそれをすることはかなり難しいです。そこで、あなたはそのためのプログラムを書くことにします。 チャレンジ 3つのポイントとそれらまでの距離が与えられたら、位置の座標を出力します。 入力と出力は、実数の代わりに複素数を使用するなど、任意の便利な形式にすることができます。使用する形式を回答で明確にしてください。 あなたは常にあなたとの距離で正確に3つの異なるポイントを取得します。 座標と距離は、任意の精度の浮動小数点数です。出力は小数点以下3桁まで正確でなければなりません。丸めはあなた次第です。答えを明確にしてください。 3つのポイントが同一直線上にないことを前提とする場合があるため、常に一意のソリューションが存在します。 ソリューションをブルートフォースすることは許可されていません。 この特定の問題を単純化する組み込み機能は使用できません。ただし、ベクトルノルムなどのビルトインは許可されます。 始めるためのヒント: 半径としてあなたまでの距離でそれらの3点のそれぞれの周りの円について考えてください。 ルール 機能または完全なプログラムが許可されます。 入出力のデフォルト規則。 標準の抜け穴が適用されます。 これはcode-golfなので、バイト数が最も少なくなります。Tiebreakerは以前の提出です。 テストケース ここで一点の入力フォーマットである[[x,y],d]とxし、y座標であり、かつdこの点までの距離です。これらの3つのポイントはリストに配置されます。出力は次のようになりx、その後とy、リストに。 [[[1、2]、1.414]、[[1、1]、2.236]、[[2、2]、1.0]]-> [2、3] [[[24.234、-13.902]、31.46]、[[12.3242、234.12]、229.953]、[[23.983、0.321]、25.572]]-> [-1.234、4.567] [[[973.23、-123.221]、1398.016]、[[-12.123、-98.001]、990.537]、[[-176.92、0]、912.087]]-> [12.345、892.234] このPythプログラムを使用して、追加のテストケースを生成できます。場所は入力の最初の行にあり、3つのポイントは次の3行にあります。 ハッピーコーディング!

4
三角形の特定
写真の三角形の数を数えることは、脳のテストで一般的に使用されるタスクです。三角形で構成される図形を含む画像が表示されます。次に、画像内のすべての可能な三角形を見つける必要があります。 仕事 選択した形式の行のリストが表示されます。次に、その中にある三角形のリストを出力する必要があります 入力 行のリストが与えられ、各行は4つの整数座標(例:)で与えられx1 y1 x2 y2ます。明確に文書化されている限り、入力形式を選択できます。例: 0 4 8 1 0 4 9 5 8 1 9 5 2 8 0 4 9 5 2 8 [[0, 4, 8, 1], [0, 4, 9, 5], [8, 1, 9, 5], [2, 8, 0, 4], [9, 5, 2, 8]] これは画像と同じ入力です: 交差点を使用する別の1つ(スペースを節約するために1つの形式のみ): …

4
タイリング、頂点構成を指定
仕事 タスクは、頂点構成を指定して、ポリゴンをタイル表示することです。 得点 あなたのスコアはあなたの提出が到達する「複雑さのレベル」に等しい。複雑さのレベルは累積的です。つまり、#3に到達するには#1&#2もサポートする必要があります。 複雑度が同じレベルの送信は、バイトカウントによって区別されます。最低の勝利。 入力 入力は、頂点図形を表す頂点構成を含む文字列です。つまり、ドットで区切られた整数のリストです。各整数(n)は、共通の頂点で接続された通常のn角形を表します。 次の頂点構成をサポートする必要があります。 3.3.3.3.3.3 3.3.3.3.6 3.3.3.4.4 (順序は頂点の図に反映されるため、以下は異なります) 3.3.4.3.4 3.12.12 3.4.6.4 3.6.3.6 4.4.4.4 4.6.12 4.8.8 6.6.6 出力-複雑さレベル#1:頂点図 この複雑さのレベルでは、出力は、指定された入力に対応する頂点図形を示す画像です。 入力の先頭にを追加してF、完全なタイリングではなく、頂点の図を出力する必要があることを示します。 たとえば、F3.6.3.6次の頂点図を示します。 出力-複雑さレベル#2:タイリング この複雑度レベルの出力は、指定された入力に対応する頂点図形を使用した均一なタイリングを示す画像です。 たとえば、3.6.3.6次のタイリングを示します。 色や形式に制限はありません(抜け穴はありません)。 出力-複雑さレベル#3:デュアルタイリング この複雑さのレベルでは、各タイルから「デュアルタイル」を形成できます。これは、各ポリゴンの中心から各境界ポリゴンの中心まで線を引くことで実現されます。 デュアルタイリングは、入力の先頭にV。 たとえば、V3.6.3.6次の二重タイリング(赤)を示します。

2
Xが3より大きく、XとYの間に少なくとも2つの差がある
私はいくつかのC ++をゴルフしようとしています。この条件を短くすることは可能ですか? X > 3 & X - Y > 1 (もちろん、空白の削除は別として。) だから、X少なくともです4がX >= Y + 2。 XおよびYは、[0,5]間隔の整数です。 ビット単位の数式を見つけようとしましたが、失敗しました。
11 code-golf  number  tips  c++  code-golf  popularity-contest  obfuscation  code-golf  c  code-golf  board-game  hexagonal-grid  code-golf  game  grid  code-golf  number  permutations  popularity-contest  math  graphical-output  number-theory  king-of-the-hill  code-challenge  compression  code-challenge  fastest-code  code-golf  math  ascii-art  animation  code-golf  popularity-contest  generation  counting  fastest-code  fastest-code  popularity-contest  image-processing  king-of-the-hill  code-golf  conversion  binary-tree  code-golf  math  number  rational-numbers  division  code-golf  restricted-source  hashing  atomic-code-golf  logic-gates  code-golf  function  code-challenge  puzzle-solver  ai-player  test-battery  popularity-contest  music  compression  code-golf  number  stack  atomic-code-golf  logic-gates  ascii-art  popularity-contest  code-golf  date  grid  code-challenge  game  code-golf  parsing  code-golf  math  geometry  sequence  popularity-contest  code-trolling  code-golf  string  restricted-source  code-golf  quine  king-of-the-hill  code-golf  math  code-golf  simulation  code-golf  ascii-art  code-challenge  sorting  optimization 

7
多角形の穴の数
問題:接続されたポリゴンの穴の数を数えます。ポリゴンの接続性は、入力三角形分割のすべての三角形が少なくとも1つの辺を別の三角形と共有し、そのような接続された三角形のセットが1つしかないという条件によって保証されます。 入力は、平面内Lのn点のリストと、Tからのエントリを含む3タプルのリストです0...n-1。Tタプル内の各アイテムは、三角形分割の三角形(t_1,t_2,t_3)の3つの頂点(リストからL)を表します。これは、「ポリゴンの三角形分割」の意味での三角形分割であることに注意してください。このため、Tそのオーバーラップに2つの三角形が存在することはありません。追加の規定は、あなたが入力をサニタイズする必要はないだろう、ということであるLとT任意の繰り返しが含まれていません。 例1:もしL = {{0,0},{1,0},{0,1},{1,2}}とT = {{0,1,2},{1,2,3}}、指定した多角形は0の穴数を持っています。 実施例2:場合L = {{0,0},{1,0},{2,0},{2,1},{2,2},{1,2},{0,2},{0,1},{.5,.5},{1.5,.5},{1.5,1.5},{.5,1.5}}とT = {{5,6,11},{5,10,11},{4,5,10},{3,8,10},{2,3,9},{2,8,9},{1,2,8},{0,1,8},{0,8,11},{0,7,11},{6,7,11},{3,4,10}}その後ポリゴン入力が2の出力をもたらすはずです。 タスクがかかる最短プログラム(または関数)を書くことであるLとT穴の数を入力し、リターンなどを。「勝者」は、文字数が最も少ないエントリ(仮の終了日は6月1日)として認識されます。 サンプル入力フォーマット(0のインデックス付けに注意): 0,0 1,0 0,1 1,2 0,1,2 1,2,3

3
クリスマスの星を描く/星形十二面体
紙の星は私の家族のクリスマスの大物なので、私は仮想の星がクールだと思いました。 以下は、正十二面体の画像です(https://en.wikipedia.org/wiki/Dodecahedronから、そこで言及された作者に帰属します)。 星座のプロセス(ウィキペディア)を多面体に適用すると、他の面と交差するまで面が拡張されます。したがって、通常の12面体から始めて、次の形状を取得します。 小さな十二面体、大きな十二面体、そして大きな十二面体 http://jwilson.coe.uga.edu/emat6680fa07/thrash/asn1/stellations.htmlからの画像 これらは、十二面体(ウルフラム)の3つの可能な星座です。それらは、12面体から小さな12面体、大きな12面体、そして大きな12面体へと自然に進行します。 仕事 プログラムまたは関数は、次の多面体の1つである画像ファイルを表示または出力する必要があります。正十二面体、小さい星形十二面体、大きい十二面体または大きい星形十二面体。 配色は上の2番目の画像のようになります。6対の向かい合う面のそれぞれは、赤、黄、緑、シアン、青、マゼンタの6色のいずれかになります。言語またはそのドキュメントでこれらの名前のデフォルトの色を使用するか、FF0000、FFFF00、00FF00、00FFFF、0000FF、FF00FFの色を使用できます(必要に応じて、強度を最低75%に下げることで、これらのトーンを下げることができます。たとえば、FをCに減らすなど)。 「面」を同じ平面内のすべての領域として定義することに注意してください。したがって、上の画像の前面は黄色です(平行な背面も黄色になります)。 背景は黒、灰色、または白でなければなりません。エッジは省略できますが、描画する場合は黒にする必要があります。 ルール 表示される多面体の幅は500〜1000ピクセルである必要があります(幅は、表示される2つの頂点間の最大距離として定義されます)。 表示される多面体は、透視投影(多面体から少なくとも5幅離れた視点)、または正射影(事実上、視点が無限遠にある透視投影)でなければなりません。 多面体はどの角度からでも表示できる必要があります。(可能な限り簡単な角度を選択してハードコードされた2D形状を作成することはできません。)角度は、次のいずれかの方法でユーザーが指定できます。 stdinから、または関数またはコマンドラインパラメータとして、3つの回転に対応する3つの角度の入力。これらは、オイラー角(最初と最後の回転が同じ軸を中心とする)またはテイトブライアン角(x、y、z軸を中心に1回転)のいずれかになります。https://en.wikipedia.org/ wiki / Euler_angles(簡単に言えば、各回転がx、y、またはz軸を中心とし、連続した回転が垂直軸を中心とするものであれば何でもかまいません。) ユーザーが多面体をx軸とy軸を中心に10度以下のステップで回転させ、任意の回数だけ画面を更新するための機能(画面に垂直なz軸を想定)。 多面体はワイヤーフレームではなく、ソリッドでなければなりません。 多面体を描画するための組み込み関数は許可されていません(Mathematicaであなたを探しています!) 得点 これはコードゴルフです。バイト単位の最短コードが優先されます。 ボーナス 3D描画にビルトインを使用しない場合は、スコアに0.5を掛けます。 12面体の星座を3つすべて表示できる場合は、スコアに0.7を掛けます。これは、ユーザーがstdinから入力した1〜3の整数で選択するか、関数またはコマンドラインパラメーターで選択できます。 両方のボーナスを獲得すると、スコアに0.5 * 0.7 = 0.35が掛けられます。 役立つ情報(以下のソース) https://en.wikipedia.org/wiki/Regular_dodecahedron https://en.wikipedia.org/wiki/Regular_icosahedron 十二面体には20個の頂点があります。それらのうちの8つは、次のデカルト(x、y、z)座標を持つ立方体の頂点を形成します。 (±1、±1、±1) 残りの12は次のとおりです(ファイは黄金比です) (0、±1 /φ、±φ) (±1 /φ、±φ、0) (±φ、0、±1 /φ) 小さい星形の十二面体と大きい十二面体の凸包は明らかに正十二面体です。外側の頂点は二十面体を表します。 ウィキペディアによると、正二十面体の12個の頂点は、(0、±1、±φ)の巡回置換と同じように記述できます。小さな星形の十二面体と大きい十二面体(上記の十二面体と同じスケール)の外側の頂点は、より大きな二十面体を形成し、頂点の座標は(0、±φ^ 2、±φ)の巡回置換です。 12面体と20面体の面間の角度は、それぞれ2 arctan(phi)とarccos(-(√5)/ 3)です。 …

15
できるだけ正方形に近いグリッドを作成します
グリッドをできるだけ正方形に近づける関数またはプログラムを作成する 入力として整数N、整数(1、2、3、25など)が与えられます 出力は、できるだけ正方形に近いN文字の完全な長方形グリッドである必要があります (志望)正方形は、ユーザーが指定したOまたはXの文字のいずれかで構成されている必要があります ポイント: OまたはXのみにハードコード:+1 出力を回転するためのparam(0/1、true / false、類似のもの)(5または8など):-10 正方形を設計します(何らかのパターンでOとXの両方を使用します):-5 両方のタイプの文字(x / y軸> = 3)を含み、水平方向または垂直方向に反転してもパターンは同じである場合、パターンは有効と見なされます(XとOsの交換が許可されています)。 例 INPUT: 4 INPUT: 5 INPUT: 8 INPUT: 9 OO OOOOO XXXX XOX OO XXXX OXO or rotated 90deg XOX 許可されない例(同じ長さの行または列ではない) BAD RESULT: 5a BAD RESULT: 5b BAD RESULT: 8 OOO OO OOO OO OO …

10
直角三角形を生成する
この課題では、2つの数値(スペースで区切られた)を入力として受け取り、xs で構成されるASCII直角三角形を出力する必要があります。 最初の数値は、出力する三角形の幅と高さです。2番目の番号は、直角になるコーナーです。コーナーには、左上から順に英語の読み順で1〜4の番号が付けられています。 1 2 3 4 例(入力とそれぞれの三角形の出力): INPUT | 3 1 | 3 2 | 3 3 | 3 4 ------+-----+-----+-----+---- OUT- | xxx | xxx | x | x PUT | xx | xx | xx | xx | x | x | xxx | xxx プログラムの出力は、それぞれの入力に対してこれらの例と正確に一致する必要があります。 入力は常に有効です。最初の数値は1以上の整数で、2番目の数値は1、2、3、または4です。 …

2
正多角形の領域
すべての対角線が描かれた通常のNゴンが与えられた場合、対角線はいくつの領域を形成しますか? たとえば、正三角形は正確に1、正方形は正確に4、五角形は正確に11、六角形は24です。 スコアはソリューションのバイト数に反比例します 実行時間に基づいて、スコアに小さなファッジファクターを追加できます。 ポリゴンを囲む領域はカウントされません

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.