gpt4 book ai didi

c - 使用 C 在 SVG 中绘制切线图

转载 作者:太空宇宙 更新时间:2023-11-04 04:54:21 27 4
gpt4 key购买 nike

这是我自己无法理解的更复杂作业的最后一部分。

基本上它是一个正切函数,使用 C 绘制成 SVG。

我是这样画的:

enter image description here

它应该是这样的:

enter image description here

除了我什至绘制那些未定义切线的线外,它几乎是一样的。我如何摆脱它?我实际上是使用一个简单的 for 循环生成该切线,我知道通过将 Lineto 更改为 Moveto 我将摆脱那些线,但是如何确定一个可用于任何高度的公式/宽度和任何 (-x,x) (-y,y)。有什么想法吗?

源代码: link to my drawing | link to original drawing

编辑:结构

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);
}

最佳答案

如果导数是非有限的,那么您需要移动而不是直线。

关于c - 使用 C 在 SVG 中绘制切线图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10969119/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com