PHP(GD、もちろん)ではさまざまな機能を描画する際に問題があります。 私は別の関数を描くことができましたが、関数のパラメータが変わるたびに関数は変化します。 私は、最初の関数y = x^2を持ち、それを-5から5まで描く必要があるとしましょう。つまり、最初の点は(-5; 25)になります。私がそれを知っていれば、私はそれを私が望むあらゆる点に動かすことができます。しかし、y = 2x^2を間隔x =( - 5; 5)で選ぶと、最初のポイントは(-5; 50)です。だから私はどのように関数を移動するかを計算するのに助けが必要だとしましょう(0; 0)。 関数は放物線/カテナリーです。特定の点から始まる描画関数
0
A
答えて
1
あなたがしたいのは、作成しているグラフの最大境界を見つけることです。これを行うには、それぞれの変曲点と範囲の境界を確認する必要があります。各座標ペアを配列に格納する
パート1 [範囲境界]: 範囲の境界から座標を収集します。
<?php
$ybound[] = f($minX);
$ybound[] = f($maxX);
パート2 [屈曲]: この部分はより困難です。放物線の種類ごとに変曲点を解く一連の方程式を持つこともできますし、無理矢理強制することもできます。これを行うには、ちょうど(あなたの小さな増分が線を引くためのものですこれまで何)、小さな増分を選択し、私は0.1
<?php
for($x = $minX; $x <= $maxX; $x += 0.1) {
$ybound[] = f($x);
}
注意を使用しますが、あなたのブルートフォース場合、あなたは、それ以外の場合は、それをパート1をスキップすることができます
パート3 [最小値]: 可能なy値の配列から最小値と最大値を取得するようになりました。
<?php
$minY = min($ybound);
$maxY = max($ybound);
パート4 [Shift]キー: 今、あなたがこれを持っていること、調整することは非常にシンプルでなければなりません。新しい座標をそれぞれの値に調整することによって左上隅を0,0に設定します。この情報で
<?php
$shiftX = -$minX;
$shiftY = $maxY;
、あなたも、あなたの座標を生成するよう、あなたの画像サイズ
<?php
$imageX = $maxX - $minX;
$imageY = $maxY - $minY;
はその後、あなたは座標にシフト値を追加することで、各1をシフトするかを決定することができます。
<?php
for($x = -$minX; $x <= $maxX; $x += 0.1) {
$ycoor = $shiftY - f($x);
$xcoor = $x + $shiftX;
//draw ...
}
軸を描画することも容易である、
<?php
$xaxis = $shiftY;
$yaxis = $shiftX;
(私はすべての私の兆候が正しいと思う。彼らはオフになっている場合は、私を許してください)
0
あなたバウンディングボックスを決定する最初の必要性あなたの機能の次に、幅と高さを計算し、左上の座標が(0,0)の矩形に収まるように正規化します。たぶん、あなたはまた、特定のサイズでそれを得るために、図を拡大縮小する必要があります。
関連する問題
- 1. カスタムボタンからポリゴンの描画を開始
- 2. Achartengineのpiechartは再描画関数からリフレッシュしません
- 3. 複数の画像ビューから特定の画像ビューを特定する
- 4. 固定小数点を特定の点までスクロール
- 5. 金属の描画点
- 6. 特定のポイントからscrolldivを開始
- 7. touchesmoved + drawrect関数を使用して特定の領域から別の特定の領域に線を描画する方法
- 8. 特定の行から始まるディレクトリ内の複数のファイルを読む
- 9. glDrawArraysはランダムな点を原点に描画しますか?
- 10. 配列から複数のアイテムを(キャンバスで)描画する関数
- 11. ondraw関数の外に描画パスandroid
- 12. zedgraphの特定の点にラベルを付けて円を描く
- 13. パッケージから特定の関数のみをロードする方法
- 14. NSTableViewは特定の条件で再描画されません
- 15. 小数点から始まる数字をゼロに変換するには
- 16. 固定小数点からマウス位置に向かって線を描くJava
- 17. 特定の単語で始まる行数をカウントする
- 18. 特定のファイルから関数ポインタを取得する
- 19. php fetchpage()関数ヘルプ、phpのURLからイメージサイズを特定する
- 20. SDL2点線を描画する方法
- 21. Java:関数グラフを描画しますか?
- 22. マップキット上の2点の描画ルート
- 23. Haskell関数の開始時に定数を定義する
- 24. OpenGL ES 2.0、複数の頂点バッファを使用した描画
- 25. 段落の特定の点に画像を挿入する
- 26. iPhone Cocos2D - 特定の画像でシーンを開始する
- 27. Flex 4 Spark BorderContainer - 特定の面の境界を描画しますか?
- 28. Android、メインアクティビティからの描画
- 29. 特定の行からテキストファイルを読み始める
- 30. CGAffineTransformの開始点を設定する
サンプルコードがありますか? – Yoshi