V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
daijinming
V2EX  ›  程序员

求助如何使用 GDI+ 绘画一堆自然的小点点

  •  
  •   daijinming · 2019-09-16 11:40:47 +08:00 · 2163 次点击
    这是一个创建于 1895 天前的主题,其中的信息可能已经有所发展或是发生改变。

    GDI+中只能这么画点: bitmap.SetPixel(iColumn, iRow, color); ,可是这只是设置一个像素点,如何能模拟出现实中的点,有大有小,有深有浅,形状不规则,求思路

    15 条回复    2019-09-17 10:05:58 +08:00
    ysc3839
        1
    ysc3839  
       2019-09-16 12:28:39 +08:00 via Android
    你这个问题和 GDI 什么的无关,大概是计算机图形学的范畴,可能涉及到 3D 渲染了。
    InternetExplorer
        2
    InternetExplorer  
       2019-09-16 12:33:06 +08:00 via Android
    有大小的叫圆
    xiri
        3
    xiri  
       2019-09-16 12:34:32 +08:00 via Android
    同上,按你的描述,那叫圆,不是点
    shawndev
        4
    shawndev  
       2019-09-16 13:15:57 +08:00
    像素是成像的最小单位,没办法做到有大有小。有大有小的那叫图形,属于计算机图形学的范畴。
    littlewing
        5
    littlewing  
       2019-09-16 13:17:08 +08:00
    点是没有部分(μέρος)的东西”。点没有部分,所以也就没有大小[6]。

    在欧几里得几何中,点是空间中只有位置,没有大小的图形

    https://zh.wikipedia.org/wiki/%E7%82%B9
    nicebird
        6
    nicebird  
       2019-09-16 13:21:44 +08:00
    画圆
    wmhx
        7
    wmhx  
       2019-09-16 14:22:36 +08:00
    你画大小不一的实心圆 不就 o 了?
    shirokow
        8
    shirokow  
       2019-09-16 14:24:07 +08:00 via Android
    lz 想要的是二维高斯函数的渐变效果吗
    shirokow
        9
    shirokow  
       2019-09-16 14:25:49 +08:00 via Android
    @shirokow 不规则的效果可以试试 perlin noise
    daijinming
        10
    daijinming  
    OP
       2019-09-16 14:39:08 +08:00
    @shirokow 二维高斯函数 这个好专业,能解释下吗, 看到 noise 估计就差不多来,就是设置一些干扰点用的
    BirlGoy
        11
    BirlGoy  
       2019-09-16 14:48:53 +08:00   ❤️ 1
    应该要用到 gdi+的 path。 思路是用颜色填充路径。其中路径可以是圆、方形、不规则图形等。
    smilenceX
        12
    smilenceX  
       2019-09-16 14:52:14 +08:00   ❤️ 1
    看你提到“干扰点”,不负责地猜你是要生成验证码之类的东西。
    如果是这样的话,随机生成 x,y 作为圆心,再用随机的半径画圆就行了,同样,填充的颜色也可以随机。
    shirokow
        13
    shirokow  
       2019-09-16 15:18:08 +08:00 via Android
    @daijinming 就是一维正态分布绕 Y 轴旋转一下的结果。这种图案就是边缘平滑一些
    andychen20121130
        14
    andychen20121130  
       2019-09-17 00:22:14 +08:00
    5 个像素当成一个像素不就可以了
    nvioue
        15
    nvioue  
       2019-09-17 10:05:58 +08:00 via Android
    现在还有 win32 编程!!看来是微软粉。不过我记得 gdi 这个东西早就 deprecated 吧?? 直接上 directwrite 可行?除非你要兼容 xp
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1104 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 46ms · UTC 19:01 · PVG 03:01 · LAX 11:01 · JFK 14:01
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.