問題タブ [mathematica-8]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
4 に答える
378 参照

wolfram-mathematica - Combinatorica`PlanarQが機能しない

PlanarQが「True」または「False」を返さないのはなぜですか?

0 投票する
4 に答える
799 参照

wolfram-mathematica - Mathematica でKMZを処理する

私は変換に行き詰まっています。

いくつかの座標を含む KMZ ファイルがあります。私は次のようにファイルを読みました:

私はこのようなものを得る:

各ポイントから {x,y,z} を抽出し、ポイントに関連付けられた目印名 {1,2,3} も抽出したいと考えています。Geometry->{} からポイントを取得できたとしても、List@@@ を使用してリストに抽出できるので問題ありませんが、Geometry を抽出できない基本的な部分で迷っています。 "ルール"。

助けてくれてありがとう、

ロン

0 投票する
3 に答える
614 参照

wolfram-mathematica - Mathematica8の'Graph`オブジェクトに関する情報にプログラムでアクセスするにはどうすればよいですか?

Mathematica 8でオブジェクト内の情報にアクセスしようとしていますGraph。何らかの理由で、Partコマンドが機能しないようです。

myGraphアクセスしたいオブジェクトです。

下の最初の行はmyGraphを表示しています。他の人はそれを検査するのに役立ちます。

myGraph

なぜmyGraph[[1]]戻らないのList[1,3,4,2,5] ですか?Graph[目に見えないラッパーでラップされ た場合に備えて、レベル2にチェックしました。Level[myGraph,1]、単に。を返します{}。そしてFullForm[myGraph][[1]]、グラフ自体の画像を返します。

私は明らかな何かを見落としているに違いありません。


編集

これが私がグラフを作成するために使用したコードです。そのほとんどは、目前の問題とは無関係です。しかし、少なくとも、私が使用しているのと同じコードで作業することになります。

0 投票する
2 に答える
6291 参照

image - Mathematica:PNGで透明な背景

これはMathematica8.0.1や他のバージョンのバグである可能性が高いです。次のことを試してみましょう。

これは私が入手したもののスクリーンショットです:

出力

最初に気付くのは、最後の2つの画像のサイズが間違っていることです。300以上の解像度で満足しているので、ある程度問題ありません。今これを見てください:

Export背景が透明で高解像度のpngファイルとしてイチジクしたいです。いつもバグのあるMathematicaを使った私の足の不自由な試みがここにあります。

これがいくつかのpngファイルのスクリーンショーです。

画像

それらのすべては期待された解像度で出てきました:)。しかし、私の透明​​な背景はどうなりましたか?私は自分のコードで何度も指定しましたが、Background -> Noneこれは機能したくありません。私はウェブを見回しました、そして私はこれを見つけました:

http://forums.wolfram.com/mathgroup/archive/2009/Feb/msg00943.html

このアイデアを使用してみましょう。

画像

背景なし!!! :) 素晴らしい。しかし、私の画像のサイズはどうなりましたか?解像度は上がっていますが、画像サイズが小さくなり始めています。私は本当に長い間この問題をいじっています。皆さんの一人がこのMathematicaのバグに光を当て、高解像度の透明な背景PNGを実現するためのハックを見つけられることを願っています。答えが見つかったら、皆さんが使用しているMathematicaのバージョンを教えてください。

0 投票する
1 に答える
1954 参照

wolfram-mathematica - Mathematica:画像座標を基準にしたGraphics3Dのテキスト

Mathematicaのドキュメントには、「3次元グラフィックスのテキストは、指定された点{x、y、z}の射影に対応する位置に配置されます。テキストは他のすべてのオブジェクトの前に描画されます」と記載されています。画像サイズに対してテキストをどのように配置しますか?

これは、2Dで実行できる方法です。

出力

PlotRangeClippingこれらのラベルは、に設定されている限り、常にその位置に表示されFalseます。問題は、に切り替えた場合に、これらのラベルをその特定の位置にどのように表示するかですGraphics3D。簡単なもので試してみてください。

0 投票する
2 に答える
5629 参照

wolfram-mathematica - Mathematica: 3Dワイヤーフレーム

Mathematicaはワイヤーフレーム画像の隠線除去をサポートしていますか? そうでない場合、ここで誰かがそれを行う方法に出くわしたことがありますか? これから始めましょう:

出力

ワイヤーフレームを作成するには、次のことができます。

出力

この効果を得るためにできることの 1 つは、すべてのサーフェスを白くすることです。しかしながら、これは望ましくない。その理由は、この隠線のワイヤー フレーム モデルを pdf にエクスポートすると、Mathematica が画像のレンダリングに使用するすべての白いポリゴンが得られるからです。PDFおよび/またはeps形式で隠線除去付きのワイヤーフレームを取得できるようにしたいと考えています。


アップデート:

この問題の解決策を投稿しました。問題は、コードの実行が非常に遅いことです。現在の状態では、この質問の画像のワイヤーフレームを生成できません。私のコードで自由に遊んでください。投稿の最後にリンクを追加しました。このリンクでコードを見つけることもできます

0 投票する
2 に答える
945 参照

wolfram-mathematica - Mathematica:線分の結合

これは、 Mathematica でワイヤフレームに関する私の質問に対する答えを見つけようとする私の試みの一部です。

一連の線分が与えられた場合、接続されていて同じ線上にある 2 つの線分を結合するにはどうすればよいでしょうか。たとえば、線分l1 = {(0,0), (1,1)}と を考えてみましょうl2 = {(1,1), (2,2)}。これらの 2 つの線分は、1 つの線分、つまり に結合できますl3 = {(0,0), (2,2)}。これは、l1l2が点を共有し、(1,1)各線分の傾きが同じであるためです。ここにビジュアルがあります:

出力

注意すべきことの 1 つは、上記の例l1で とl2を 3 つの点で指定された 1 つの線に結合できること{{0,0},{1,1},{2,2}}です。

この質問の最初の部分は次のとおりです。2 つの点で指定された線分のセットが与えられた場合、このセットを減らして、重複する点の数を最小限に抑えるにはどうすればよいでしょうか。この構成例を考えてみましょう:

私が欲しいのはREDUCE、次の出力を与える関数 say です。

必要な重複は だけです{1,1}。私がこれを行った方法は次のとおりです: 最初の行を に置き、次の行Rを見て、 のlines行の端点と一致する端点がないことに気付いたRので、この新しい行を に追加しましたR。の次の行はlinesです{{2,2},{1,1}}。エンドポイント{1,1}は の最初の行と一致するRため、 の行に追加{2,2}しましたR。に追加{{1,1}, {0.5,0.5}}R、 も追加し{{0,1}, {0,2}}ます。の最後の行にlinesは のエンドポイントと一致するエンドポイントがあるRので、それを追加したので、{{2,1}, {0,1}, {0,2}}. 最後に、すべての行をR見て、いずれかの端点が一致するかどうかを確認します。この場合、行{{3,3}, {2,2}}は最初の行の右端点と一致しますRしたがって、追加{3,3}する必要がなくなります{2,2}

これは、最適な削減が得られないという意味で、最適な方法ではない可能性があります。いずれにせよ、この縮小関数があると仮定すると、線を記述するためにすべての点が必要かどうかを確認できます。これは次のように行うことができます。

線を表す点が 3 つ以上ある場合は、最初の 3 つの点が同一線上にあるかどうかを確認します。同一線上にある場合は、中央の点を削除し、2 つの端点と新しい点のセットでチェックを行います。それらが同一線上にない場合は、1 点ずらして次の 3 点を確認します。

この質問をしている理由は、2D 図形を記述するために必要なポイントの量を減らしたいからです。次のことを試してください。

出力

次のMathematica 8関数は、3Dオブジェクトを、オブジェクトのワイヤーフレームを表す線のリスト(線は2点のリスト)に変更します:

Mathematica 7では、 で置換_JoinedCurveする必要があることに注意してください_Lineg1取得した関数を適用する

出力

そこには 90 個の線分がありますが、必要なのは 12 個だけです (直線の数え方を間違えていなければ)。

そこで、あなたは挑戦します。lines図を説明するために必要な最小限の情報を得るには、どのように操作すればよいでしょうか。

0 投票する
2 に答える
1101 参照

wolfram-mathematica - Mathematica:交差しない線分

Mathematicaに交差しない線のセットを与えるように指示するにはどうすればよいでしょうか? この場合、2 つの線が共通の点 (終点ではない) を持っていれば交差します。この単純なケースを考えてみましょう:

アイデアは、線のセットを指定すると、交差しない線のセットを返す関数を作成することです。そのような関数が存在する場合split、次の出力

だろう

関数{0,0}は、セット内の 2 つの線の交点を検出し、交差しない線を作成するために、交点で線セグメントを分割して、さらに 2 つの線を生成しました。元の入力にさらに多くの行が含まれている場合、このプロセスはより複雑になります。ループを使用せずにMathematicaでこれを効率的に行う方法を知っている人はいますか? 2 つの線が交差しているかどうかを検出するアルゴリズムを知っていると役立つ場合があります。

ノート

この質問は、隠れ線を削除してMathematicaでワイヤー フレームを作成する方法を見つけようとする私の試みの 2 番目の部分です。適切なタグを自由に追加してください。

0 投票する
3 に答える
5221 参照

latex - Mathematica 8.0 と psfrag

最近、Mathematica 7.0 から 8.0 に更新しましたが、psfrag パッケージを使用してプロット ラベルを LaTeX コードに置き換える際に問題が発生しました。以前のバージョンとまったく同じプロットですべてが完全に機能しましたが、現在、psfrag はすべてのラベルを変更せずに残しています。LaTeX編集にUbuntu 11.04でKileを使用しています。

たとえば、Mathematica では次のようになります。

そしてLaTeXで:

これで、ラベルが LaTeX の組版に置き換えられるはずですが、何も起こりません。これを解決する方法はありますか?以前のバージョンと比較して、Mathematica 8がepsファイルのテキストをエンコードする方法に違いがあるかどうか誰か知っていますか?

0 投票する
1 に答える
1560 参照

wolfram-mathematica - Mathematica: グラフィックプリミティブとディレクティブの取得

Graphicsオブジェクトからグラフィック プリミティブとディレクティブをどのように取得しますか? Leonid Shifrin は、投稿Mathematica: Removal Graphics Primitivesでそれらを削除する方法を示しました。似たようなものを適用しようとしましたが、欲しいものが得られません。次の例を検討してください。

出力

g2グラフィックス オブジェクトになりました。InputFormの を見るg2と、このグラフィックス オブジェクトが と で構成されていることがわかりPolygonますJoinedCurve。私がやりたいことは、 のすべてのプリミティブ オブジェクトを反復処理できるようにすることですg2。次のように繰り返してみると

私達は手に入れました

代わりに取得したいのは、単純なプリミティブのリストです。内部には入れたくありませんStyles。線と色のみを取得する 1 つの試みを次に示します。

出力

左の画像は間違って描かれていることに注意してください。この画像は と のみを使用して生成されJoinedCurveましRGBColorた。どういうわけか 1 つの色を逃したため、黒い線があり、残りの線は他の色になっています。Polygonsもう一方の画像は正しく描画されています。そこに表示されていたとをすべて削除Thicknessしただけです。ここで私は何をしていますか?同じプロットを取得するべきではありませんか?