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. 親の観点からリアクションコンポーネントの描画コードを定義する
- 3. Forループ内の特定の点から始める
- 4. カスタムボタンからポリゴンの描画を開始
- 5. 特定の数のアイテムからなる特定の数から始まるシーケンシャルアレイの作成
- 6. ggplot2特定の注文に関するグラフを描画する
- 7. 特定の月から数えて数え始めます
- 8. Achartengineのpiechartは再描画関数からリフレッシュしません
- 9. CS50描画関数はゼロのみを描画します
- 10. R-特定の点を横切る曲線を描画する方法
- 11. Draw関数は - 関数描画のパラメータ
- 12. 複数の画像ビューから特定の画像ビューを特定する
- 13. 2つの画像の特定の点の間の線を描く
- 14. アンドロイドの与えられた点からのプロット/描画
- 15. 特定の子ビューの前に描画
- 16. トリガー描画(rect)関数
- 17. Java、特定のJPanelを描画
- 18. 金属の描画点
- 19. 特定の交点まで垂直線を描く
- 20. ImageResizerで特定の位置に画像を描画します。
- 21. マウスクリックによるコール関数の描画
- 22. glDrawArraysはランダムな点を原点に描画しますか?
- 23. VBA:特定のセルから始まる整数の行を削除します。
- 24. 固定小数点を特定の点までスクロール
- 25. Android、特定の点の中心画像
- 26. touchesmoved + drawrect関数を使用して特定の領域から別の特定の領域に線を描画する方法
- 27. 再描画時に特定のオブジェクトがちらつく
- 28. 特定のポイントからscrolldivを開始
- 29. 配列から複数のアイテムを(キャンバスで)描画する関数
- 30. 特定の2D点から2D点のリストまでの最も近い点Python
サンプルコードがありますか? – Yoshi