GDI+中只能这么画点: bitmap.SetPixel(iColumn, iRow, color);
,可是这只是设置一个像素点,如何能模拟出现实中的点,有大有小,有深有浅,形状不规则,求思路
1
ysc3839 2019-09-16 12:28:39 +08:00 via Android
你这个问题和 GDI 什么的无关,大概是计算机图形学的范畴,可能涉及到 3D 渲染了。
|
2
InternetExplorer 2019-09-16 12:33:06 +08:00 via Android
有大小的叫圆
|
3
xiri 2019-09-16 12:34:32 +08:00 via Android
同上,按你的描述,那叫圆,不是点
|
4
shawndev 2019-09-16 13:15:57 +08:00
像素是成像的最小单位,没办法做到有大有小。有大有小的那叫图形,属于计算机图形学的范畴。
|
5
littlewing 2019-09-16 13:17:08 +08:00
点是没有部分(μέρος)的东西”。点没有部分,所以也就没有大小[6]。
在欧几里得几何中,点是空间中只有位置,没有大小的图形 https://zh.wikipedia.org/wiki/%E7%82%B9 |
6
nicebird 2019-09-16 13:21:44 +08:00
画圆
|
7
wmhx 2019-09-16 14:22:36 +08:00
你画大小不一的实心圆 不就 o 了?
|
8
shirokow 2019-09-16 14:24:07 +08:00 via Android
lz 想要的是二维高斯函数的渐变效果吗
|
10
daijinming OP @shirokow 二维高斯函数 这个好专业,能解释下吗, 看到 noise 估计就差不多来,就是设置一些干扰点用的
|
11
BirlGoy 2019-09-16 14:48:53 +08:00 1
应该要用到 gdi+的 path。 思路是用颜色填充路径。其中路径可以是圆、方形、不规则图形等。
|
12
smilenceX 2019-09-16 14:52:14 +08:00 1
看你提到“干扰点”,不负责地猜你是要生成验证码之类的东西。
如果是这样的话,随机生成 x,y 作为圆心,再用随机的半径画圆就行了,同样,填充的颜色也可以随机。 |
13
shirokow 2019-09-16 15:18:08 +08:00 via Android
@daijinming 就是一维正态分布绕 Y 轴旋转一下的结果。这种图案就是边缘平滑一些
|
14
andychen20121130 2019-09-17 00:22:14 +08:00
5 个像素当成一个像素不就可以了
|
15
nvioue 2019-09-17 10:05:58 +08:00 via Android
现在还有 win32 编程!!看来是微软粉。不过我记得 gdi 这个东西早就 deprecated 吧?? 直接上 directwrite 可行?除非你要兼容 xp
|