精华内容
下载资源
问答
  • 如何在CAD中绘制函数曲线?CAD与EXCELL结合,绘制函数曲线相当厉害。本文采用中望CAD软件,举例说明方法:一、以三角函数y=sinx为例。1、在A列从0开始以步长0.4(可自行调节)取若干个横坐标;在B3单元格输入“=SIN(A3...

        如何在CAD中绘制函数曲线?CAD与EXCELL结合,绘制函数曲线相当厉害。本文采用中望CAD软件,举例说明方法:

    一、以三角函数y=sinx为例。

    1、在A列从0开始以步长0.4(可自行调节)取若干个横坐标;在B3单元格输入“=SIN(A3)”,不包含引号,回车;在C3单元格输入“=A3&","&B3”,不包含引号,回车;同样方法填充B、C列其它单元格。

    80bf2c3fa226704f5ea02e3df8430015.png

    2、选中C列中的坐标值,Ctrl+C复制;在CAD中输入“PL”命令,回车;提示输入坐标值时Ctrl+V粘贴,回车;大功告成,同样方法可以绘制其它函数的图像。

    5f96e1ecbf3c721445bb952ca0ae22ec.png

    二、函数图像举例

    1、y=x^2

    47a07e772eaa931b61edcb6bb67859dc.png

    2、y=lnx

    c2e84e05b178404c54703e22395888e4.png

    3、y=2^x

    501b42be513aa2e8976b884602e56311.png

    注意事项:

    计算公式里的符号要在英文状态下输入。

        那么绘好了公式曲线,在CAD中如何添加数学公式?

    1.首先,我们打开CAD软件。

    2.绘制图中所示曲线(数学中的双曲线),点击菜单“插入”→OLE对象。

    c9ad66bb4fcea04dc1b81e12b06385e2.png

    3.我们选择“Microsoft 公式3.0”,打开如下图所示的公式编辑器,将相应的公式编辑进去,然后关闭。

    9ba52f29b1bf65d9e217a4c4acdf3283.png

    c4add831d13d3013229d2e2a2e36ab2f.png

    4.选择“Microsoft 公式3.0”,打开如下图所示的公式编辑器,将相应的公式编辑进去,然后关闭。

    011f5e82515e3af9911208e61b0a5aae.png

    5.如果将图纸打印成PDF,这样就能较好地融入图中了。点击菜单“文件”→打印,打开如图所示窗口。打印机选择“DWG to PDF.pc5”,打印范围选“窗口”,直接选中图形对象。

    01144a3c6cd6f20e706a94f2afafa42e.png

    6b65f42837f3509ae1f7a669414288bc.png

    6.我们全部设置完后可以看预览,现在图片很清晰了。如果是工程出图,那完全按这样的步骤没问题,如果是论文里插图,这样得到的也足够清晰美观了。最后,Esc键退出预览,点确定。这样公式变顺利插入到CAD图形中了。

    b4b0b3c39254c8369d1857e3571990d6.png

    展开全文
  • 本节介绍如何借助smoothstep函数绘制函数曲线,以及绘制除几种颜色空间的渐变效果。

    《The Book of Shader》笔记 - 绘制函数曲线与颜色渐变

    比起第一章,第二章的内容开始有所增加,一些小练习也变多了。这里先整理一二小节。

    一.造型函数

    本节中先介绍了如何在屏幕上画出各种简单的函数曲线
    // ------------ code 1:y = x ------------ //

    #ifdef GL_ES
    precision mediump float;
    #endif 
    
    float plot(vec2 uv) {
        return smoothstep(0.02, 0.0, abs(uv.y - uv.x));
    }
    
    void main() {
        vec2 uv = gl_FragCoord.xy / iResolution.xy;
        
        // 画布自上而下由白变黑
        float y = uv.y;
        vec3 color = vec3(y);
        // 在画布对角上画一条
        float pct = plot(uv);
        color = (1.0 - pct) * color + pct * vec3(1.0, 0.0, 0.0);
        
        gl_FragColor = vec4(color,1.0);    
    }
    

    运行结果:

    在这里插入图片描述代码中自定义函数 plot 借助内建函数smoothstep, 将曲线画出。

    /*
    smoothstep(edge0, edge1, x)
        若 x <= edge0 返回0.0 若x >= edge1, 返回1.0, 
        若 edge0 <= x <= edge1, 通过Hermite插值将[edge0, edge1]映射到[0,1]
        若 edge0 >= edge1,结果未定义
    */
    
    

    网上先大概搜索了一下
    https://blog.csdn.net/hgl868/article/details/7876257
    搜索到了上面这段描述,这里的使用情况里貌似对应了未定义结果这一条。
    将代码稍微修改

    float plot(vec2 uv) {
        return smoothstep(0.3, 0.0, abs(uv.y - uv.x));
    }
    

    边界上似乎是有插值?
    在这里插入图片描述
    不过这种用法,目前似乎暂时只在绘制曲线这个函数里遇到。
    // ------------ code 2 : y = x^5------------ //

    #ifdef GL_ES
    precision mediump float;
    #endif 
    
    #define PI 3.1415926
    
    float plot(vec2 uv, float pct) {
        return smoothstep(pct-0.02, pct, uv.y) - smoothstep(pct, pct + 0.02, uv.y);
    }
    
    void main() {
        vec2 uv = gl_FragCoord.xy / iResolution.xy;
        
        // 函数  y = x^5;
        float y = pow(uv.x, 5.0); 
        vec3 color = vec3(y);
        // 在画布对角上画一条
        float pct = plot(uv, y);
        color = (1.0 - pct) * color + pct * vec3(1.0, 0.0, 0.0);
        
        gl_FragColor = vec4(color,1.0);    
    }
    

    结果:
    在这里插入图片描述
    画出了在这里插入图片描述
    // ------------ code 3 ------------ //

    在code 2 的基础上将 y 的表达式改为下面这个式子,可以在图像上看出,用正常方式打开的smoothstep函数的效果。

        float y = smoothstep(0.1, 0.9, uv.x); 
    

    在这里插入图片描述

    文末的一些其他函数的练习

    #ifdef GL_ES
    precision mediump float;
    #endif 
    
    #define PI 3.1415926
    
    float plot(vec2 uv, float pct) {
        return smoothstep(pct-0.02, pct, uv.y) - 
                smoothstep(pct, pct + 0.02, uv.y);
    }
    
    void main() {
        vec2 uv = gl_FragCoord.xy / iResolution.xy;
        float y;
        float x = uv.x + iTime;
    
        //y = abs(0.5 * sin(PI*uv.x + iTime)) + 0.5; 
        //y = fract(2.0 * sin(PI*uv.x + iTime));  // fract: fract(x) = x - floor(x)
        //y = ceil(sin(uv.x + iTime));            // ceil 向上取整
        //y = floor(sin(uv.x + iTime));           // floor 向下取整
        //y = mod(x, 0.5);                        // mod x 对 0.5 取模
        y = sign(sin(x));                         // sign 提取正负号
        y = clamp(sin(x), -0.5, 0.5);             // clamp 将 返回值限制在-0.5 到 0.5
    
        vec3 color = vec3(y);
        float pct = plot(uv, y);
        color = (1.0 - pct) * color + pct * vec3(1.0, 0.0, 0.0);
        
        gl_FragColor = vec4(color,1.0);    
    }
    

    通过这种方法,可以直接将函数曲线直接在屏幕上绘制出来,在此基础上还可以编写一些更加复杂的函数曲线。

    二. 颜色

    其实介绍的应该是向量这种数据类型。
    1. 练习
    **------- 利用step() 画一个五彩的旗子 -------- **

    #ifdef GL_ES
    precision mediump float;
    #endif 
    
    void main() {
        vec2 uv = gl_FragCoord.xy / iResolution.xy;
        vec3 color = vec3(0.0);
        color = step(uv.x, 0.8) * vec3(0.0, 0.0, 1.0) + (1.0 - step(uv.x, 0.8)) * color;
        color = step(uv.x, 0.6) * vec3(0.0, 1.0, 1.0) + (1.0 - step(uv.x, 0.6)) * color;
        color = step(uv.x, 0.4) * vec3(1.0, 1.0, 1.0) + (1.0 - step(uv.x, 0.4)) * color;
        color = step(uv.x, 0.2) * vec3(1.0, 1.0, 0.0) + (1.0 - step(uv.x, 0.2)) * color;
        
    
        gl_FragColor = vec4(color,1.0);    
    }
    

    在这里插入图片描述

    2. 颜色空间转换
    首先文中给出了两个函数,实现颜色值在rgb空间与hsb空间的相互转换。
    关于颜色空间的相关定义可参考如下链接,或自行搜索。
    https://blog.csdn.net/u010712012/article/details/85240100

    https://en.wikibooks.org/wiki/Color_Models:_RGB,_HSV,_HSL
    // -------- 输入rgb 值,返回在hsb空间下对应的数值 -------- //

    vec3 rgb2hsb( in vec3 c ){
        vec4 K = vec4(0.0, -1.0 / 3.0, 2.0 / 3.0, -1.0);
        vec4 p = mix(vec4(c.bg, K.wz),
                     vec4(c.gb, K.xy),
                     step(c.b, c.g));
        vec4 q = mix(vec4(p.xyw, c.r),
                     vec4(c.r, p.yzx),
                     step(p.x, c.r));
        float d = q.x - min(q.w, q.y);
        float e = 1.0e-10;
        return vec3(abs(q.z + (q.w - q.y) / (6.0 * d + e)),
                    d / (q.x + e),
                    q.x);
    }
    

    // -------- 输入hsb 值,返回在rgb空间下对应的数值 -------- //

    vec3 hsb2rgb( in vec3 c ){
        vec3 rgb = clamp(abs(mod(c.x*6.0+vec3(0.0,4.0,2.0),
                                 6.0)-3.0)-1.0,
                         0.0,
                         1.0 );
        rgb = rgb*rgb*(3.0-2.0*rgb);
        return c.z * mix(vec3(1.0), rgb, c.y);
    }
    

    而后做了一些简单的映射
    // -------- HSB空间 UV映射 --------- //

    void main() {
        vec2 uv = gl_FragCoord.xy / iResolution.xy;
        vec3 color = vec3(0.0);
    
        color = hsb2rgb(vec3(uv.x,1.0,uv.y));
    
        gl_FragColor = vec4(color,1.0);    
    }
    

    // -------- HSB 极坐标映射 -------- //
    在前一份代码的基础上修改main函数,添加一个2PI的定义

    #define TWO_PI 6.28318530718
    void main() {
        vec2 uv = gl_FragCoord.xy / iResolution.xy;
        vec3 color = vec3(0.0);
    
        //使用极坐标
        vec2 toCenetr = vec2(0.5) - uv;
        float angle = atan(toCenetr.y, toCenetr.x) + iTime; // 值域[-PI, PI]
        float radius = length(toCenetr) * 2.0;
    
        float r1 = step(length(toCenetr), 0.5);
        float r2 = 1.0 - step(length(toCenetr), 0.3);
        
        color = hsb2rgb(vec3(angle/TWO_PI + 0.5,radius, 1.0)) * r1 * r2;
    
        gl_FragColor = vec4(color,1.0);    
    }
    

    在这里插入图片描述

    参考资料

    1. GLSL内建函数:https://blog.csdn.net/hgl868/article/details/7876257
    展开全文
  • 绘制正弦函数曲线

    千次阅读 2018-07-23 20:47:53
    昨天我看了C语言编程趣味100例里的绘制余弦函数曲线,并思考如何绘制正弦函数曲线,在我完全理解所给代码后 我兴致勃勃的开始尝试,我的代码如下 运行结果是这样的 嗯,怎么不对,于是我开始修改程序, ...

    昨天我看了C语言编程趣味100例里的绘制余弦函数曲线,并思考如何绘制正弦函数曲线,在我完全理解所给代码后

    我兴致勃勃的开始尝试,我的代码如下

    运行结果是这样的

    嗯,怎么不对,于是我开始修改程序,

    结果成了这样

    嗯,像点样子了,但还是不够完整,于是我有加以修改,但是无论我怎么改都得不到正确的图,这时我看了眼下一个例题,我发现程序更加简单,于是我尝试用另一种方法,代码如下

    结果是这样的

    还不对 ,再改

    熬战半个小时程序终于对了,通过比对,我发现原来是因为asin函数求出的有些x 的值为负的,所以for语句中有些条件的范围在缩小,从而造成打点不正确。

    展开全文
  • 这是我的初步解决方案:from PIL import Imageimport numpy as npclass Pic_Function():def __init__(self, picture_path):self.picture = Image.open(picture_path)self.pixels = self.picture.load()self.columns ...

    这是我的初步解决方案:from PIL import Image

    import numpy as np

    class Pic_Function():

    def __init__(self, picture_path):

    self.picture = Image.open(picture_path)

    self.pixels = self.picture.load()

    self.columns = []

    # is there really no image method to get a numpy array of pixels?

    for i in range(self.picture.size[0]):

    self.columns.append([self.pixels[i,j] for j in range(self.picture.size[1])])

    self.first_black = []

    for i in self.columns:

    try:

    self.first_black.append(self.picture.size[0] - i.index((0,0,0)))

    except ValueError:

    self.first_black.append(None)

    self.max, self.min = max(self.first_black), min([j for j in self.first_black if j != None])

    def at(self, x):

    upper_idx = int(math.ceil(x))

    lower_idx = upper_idx - 1

    try:

    upper = self.first_black[upper_idx]

    lower = self.first_black[lower_idx]

    except IndexError:

    return 0

    if None in [upper, lower]:

    return 0

    up_weight, low_weight = abs(upper-x), abs(lower-x)

    return (up_weight*upper + low_weight*lower)/(up_weight + low_weight)

    def norm_at(self, x, length):

    un_normed = self.at(x*self.picture.size[0]/length)

    return (un_normed - self.min)/self.max

    展开全文
  • 如何绘制分段函数曲线

    千次阅读 2016-09-08 10:18:00
    那么几何画板分段函数怎样绘制呢? 具体操作如下: 1.选择“绘图”——“定义坐标系”原点标签为“O”,单位点标签为“A”。 依次选中点A和点O,选择“构造”——“射线”构造出射线AO,即为区间x≤1。 利用点工具...
  • 2.3.2例子二次函数绘制方法把二次函数图像变成点存储于list中画直线的时候我们画了三个点,我们还可以画更多的点。点越多图像就越是一条直线,运用的思想是微积分的思想。如何生成很多点呢?python本身自带range()...
  • 由于最近使用caffe训练一个网络,学习了如何使用训练过程中生成的log来绘制loss函数曲线,主要用于观察所训练的网络是否收敛。 前提:安装完caffe后已经对pycaffe和matcaffe编译过了。 接下来从训练过程如何生成...
  • 在生存分析中我们通常关注个体在时间t之前存在的概率(或者不发生感兴趣事件的概率),并且绘制生存函数曲线。生存函数(S(t)=Pr(T>t))是一个阶梯函数,说明随着时间的推移累计生存概率。但有时候研究者更加关注的是...
  • 如何绘制并行曲线

    2007-12-04 10:52:00
    具体的请到www.msvdraw.com 下载相关的函数库 平行线如下所示: 图7.3 并行曲线通过上面的图形你大概也能了解是怎么处理的,严格的说这里仅仅是做了简单的实现,在实际的项目操作中是要求连接处是光滑的。...
  • 我在Unity运行界面的左上角绘制了场景中汽车的速度动态曲线,最终运行效果如图(界面很粗糙只是作为初步测试): 测试的源代码为: using System.Collections; using System.Collections.Generic; using...
  • 【单选题】刚性绝热容器采用隔板分为两个部分,A中存在高压空气,B中保持真空,若把隔板抽掉,则整个容器中充满空气,高压空气可视为理想气体(内能(热力学能)是温度的单值函数),此时容器中空气的温度如何变化【单选...
  • OpenGL中如何绘制Bezier曲线和NURBS曲线

    万次阅读 热门讨论 2009-11-29 16:28:00
    一、Bezier曲线 主要注意两个函数:glMap1和glEvalCoord1。1.void glMap1{fd}(GLenum target,TYPE u1,TYPE u2,GLint stride, GLint order,const TYPE *points); 功能:定义求值器。 参数:target:指出了控制顶点...
  • 下面是我编写的一个脚本,它执行您的计算并使用pyqtraph:绘制它。从pyqtgraph.qt import qtgui,qtcore将PyqTgraph导入为pg从数学导入exp一级:DEF f(自我,T):返回exp(—(t**2))定义初始化(self,a=0,b=3,h=0.1):n=int(...
  • 文章目录0 前言1 plot3函数1.1 plot3函数的基本用法1.2 plot3(x,y,z)函数参数的变化形式1.3 含多组输入参数的plot3函数1.4 含选项的plot3函数2 fplot3函数2.1 fplot3函数的基本用法2.2 练习3 结语 0 前言 本文是...
  • 如何使用MATLAB绘制平滑曲线

    万次阅读 2013-07-26 05:56:12
    MATLAB中绘制平滑曲线一般使用最小二乘法或者B样条插值。  最小二乘法实际上是函数拟合,可以得到目标函数(这里为多项式)的系数,对outliers相对不敏感,缺点是需要预先设置目标函数的阶数,且有时不容易找到最优...
  • c# 如何在图片上绘制带有坐标的函数曲线?在Graphics上绘图,然后用放到Picturebox里,找不到背景属性呀!
  • WPF本身没有直接把点集合绘制曲线函数。可以通过贝塞尔曲线函数绘制。  贝兹曲线由线段与节点组成,节点是可拖动的支点,线段像可伸缩的皮筋,我们在绘图工具上看到的钢笔工具就是来做这种矢量曲线的。当然在...
  • Auto LISP 对 AutoCAD 2002 进行二次开发实例 ———绘制二维函数曲线Ξ李旭荣 ,任奕玲 ,梁秀英 ,刘梅英 (华中农业大学 工程技术学院 ,湖南 武汉 430070) 摘 要:主要介绍了如何用 AutoLISP 对 AutoCAD 2002 进行二次...
  • 但是如何绘制漂亮的图表、特别是多个二维曲线对比的图表,是新手科研人员苦恼的问题。下面,我会结合深度学习中不同学习率和动量的优化效率可视化比较这个例子,来解释如何使用plot进行绘图。 梯度下降配置 深度学习...
  • 在我们将对象放入ggsurvplot()函数之后,我们可以创建简单的生存曲线估计。让我们来看看患有卵巢癌(卵巢浆液性囊腺癌)和患有乳腺癌(乳腺浸润癌)的患者之间存活时间的差异 。 survivalT...
  • MATLAB绘制平滑曲线.doc

    2020-05-19 23:40:43
    - PAGE PAGE 3 欢迎下载 MATLAB... 以上是每一个X和Y对应的坐标请问如何编程能够绘制平滑曲线这个图形就像二次函数一样的 如果要在图中绘制一条直线加上y=70的直线用不同颜色区分 ?x=[0 0.1 0.16 0.27 0.41 0.48 0.59
  • 绘制曲线

    2021-02-18 00:10:47
    将每个x对应的y都绘制到场景中,就能看到函数曲线 如果加个阈值,x以0.1的增量变大,来得到y的离散点,将这些点连接起来就是曲线了 Unity提供的画线接口: Debug.DrawLine 效果如下: 代码如下: ...
  • 用 ATL ActiveX 绘制任意平面函数的曲线...对于用户输入的任意一个平面函数f(x),绘制出其函数曲线。这里最关键的技术难点就是如何实现计算表达式的值。在《编译原理》和《数据结构》的书中,都有对表达式运算方法...
  • 几何画板强大的绘图功能让我们在研究函数图象时经常使用它,在用几何画板构造函数曲线时,经常是构造自变量的函数曲线,那么,几何画板参数曲线如何绘制呢?  若有疑问可直接访问:...
  • 最近在看数据挖掘关于“逻辑回归”的知识,认识了sigmoid函数。在讨论损失函数的时候,提到了对于Logistic Regression算法,我们要用对数损失(Log Loss)函数,而非平方损失函数(Square Loss)。下面截图里也提到...
  • ROC(Receiver Operating Characteristic)曲线即受试者工作特征曲线。ROC曲线与坐标轴围成的面积...在进一步介绍ROC曲线如何绘制之前,先引入几个概念。TP(True Positives),TN(True Negatives),FP(False Po...
  • 使用aggdraw而不是pil或您自己的bezier函数的好处是aggdraw将消除图像的锯齿,使其看起来更平滑(请参见底部的图片)。AgGub符号您可以使用aggdraw.Symbol(pathstring)类,除了将路径作为字符串写入外,它基本...
  • MATLAB绘制平滑曲线

    千次阅读 2013-06-10 08:55:12
    高分求!MATLAB绘制平滑曲线!!...以上是每一个X和Y对应的坐标,请问如何编程能够绘制平滑曲线,这个图形就像二次函数一样的 如果要在图中绘制一条直线加上y=70的直线,用不同颜色区分!  x=[0

空空如也

空空如也

1 2 3 4 5 ... 16
收藏数 304
精华内容 121
关键字:

如何绘制函数曲线