1

これは、自分では理解できないもう少し複雑な宿題の最後の部分です。

基本的には、C を使用して SVG に描画される接線関数です。

これは私がそれを描いている方法です:

ここに画像の説明を入力

これは次のようになります。

ここに画像の説明を入力

接線が定義されていない線を描いていることを除いて、ほとんど同じです..どうすればそれを取り除くことができますか? 私は実際に単純なforサイクルを使用してその接線を生成しています。Lineto を Moveto に変更することで、これらの線を取り除くことができますが、任意の高さ/幅および任意の (-x,x ) (-y,y)。何かご意見は?

ソース コード: 私の図面へのリンク| 元の図面へのリンク

編集:構造

typedef struct svg_graph{
    int w;
    int h;
    int x;
    int y;
} graph;

そしてコード自体:

double initializer = 0;
double m = 0;
double temp = 0;

initializer = svg->h/2 - tan(-svg->x)*(((double)svg->h/2)/svg->y);
fprintf(output, "<path clip-path=\"url(#myClip)\" d=\"M 0 %.1f", initializer)
temp = ((double)svg->x/(svg->w/2));
m = svg->h/2 - tan(-svg->x+temp)*((double)(svg->h/2)/svg->y);
for (int i = 1; i<=svg->w; i++){

      fprintf(output, " L %d %.1f", i, m);

      temp = ((double)svg->x/(svg->w/2)) + temp;
      m = svg->h/2 - tan(-svg->x+temp)*((double)(svg->h/2)/svg->y);
}
4

1 に答える 1

0

導関数が有限でない場合は、ラインではなく移動が必要です。

于 2012-06-10T13:58:39.843 に答える