函数纹理(国际象棋棋盘纹理&粗布纹理)MFC实现
国际象棋棋盘纹理(效果图见最后)
//国际象棋纹理函数
//g(u, v) = a , 向下取整(8u)+向下取整(8v) 为 偶数
//g(u, v) = b ,向下取整(8u)+向下取整(8v) 为 奇数
void CChessGiagView::DrawChess(double a, double b, double step)
{
CDC * pDC = GetDC();
//自定义二维坐标系
CRect rect;
GetClientRect(&rect);
pDC->SetMapMode(MM_ANISOTROPIC);
pDC->SetWindowExt(rect.Width(), rect.Height());
pDC->SetViewportExt(rect.Width(), -rect.Height());
pDC->SetViewportOrg(rect.Width()/, rect.Height()/);
rect.OffsetRect(-rect.Width()/, -rect.Height()/);
pDC->TextOut(-, , "国际象棋棋盘纹理");
double u, v;
for(u=; u<=1.0; u+=step)
{
for(v=; v <= 1.0; v+=step)
{
if((int(floor(u*)) + int(floor(v*))) % == )//偶数颜色a
{
pDC->SetPixelV(Round(u*-), Round(v*-), RGB(a*, a*, a*));//u系数修改大小,减数调节显示位置
}
else//奇数颜色b
{
pDC->SetPixelV(Round(u*-), Round(v*-), RGB(b*, b*, b*));//u系数修改大小,减数调节显示位置
}
}
}
//输出相关参数
CString str_a, str_b;
str_a.Format("%.1f", a);
str_b.Format("%.1f", b);
pDC->TextOut(-, -, "a="+ str_a+", b="+str_b);
}
2. 粗布纹理 (效果图见最后)
//粗布纹理函数: f(u, v) = A((cos(pu) + cos(qv)))
//u, v=[0, 1]; A=[0, 1]随机变量; p, q频率系数
void CChessGiagView::DrawCloth(int p, int q)
{
CDC * pDC = GetDC();
//自定义二维坐标系
CRect rect;
GetClientRect(&rect);
pDC->SetMapMode(MM_ANISOTROPIC);
pDC->SetWindowExt(rect.Width(), rect.Height());
pDC->SetViewportExt(rect.Width(), -rect.Height());
pDC->SetViewportOrg(rect.Width()/, rect.Height()/);
rect.OffsetRect(-rect.Width()/, -rect.Height()/);
pDC->TextOut(, , "粗布纹理");
double u, v;
for(u=; u<=; u+=0.001)
{
for(v=; v<=1.0; v+=0.001)
{
double A = double(rand())/RAND_MAX; // A=[0, 1]
double f = A*((cos(p*u) + (cos(q*v)))); //颜色
pDC->SetPixelV(Round(u* + ), Round(v*-), RGB(f*, f*, f*));
}
}
//输出相关参数
CString str_p, str_q;
str_p.Format("%d", p);
str_q.Format("%d", q);
pDC->TextOut(, -, "p="+ str_p+", q="+str_q);
}
3. 效果
4. 补充说明:如果需要调节图像的颜色(示例仅为灰度图像), 那么就将RGB 的一个分量置为固定值,比如要红色的图像,就将R=255.
VC++ 6.0 编译通过,VC++ 永不过时!
python实现gabor滤波器提取纹理特征 提取指静脉纹理特征 指静脉切割代码
参考博客:https://blog.csdn.net/xue_wenyuan/article/details/51533953 https://blog.csdn.net/jinshengtao/ar ...
GUI(国际象棋棋盘)
package com.niit.javagui; import java.awt.BorderLayout; import java.awt.Color; import java.awt.GridB ...
python3 turtle 画国际象棋棋盘
python3 turtle 画国际象棋棋盘 #!/usr/bin/env python # -*- coding:utf-8 -*- # Author:Hiuhung Wan import turt ...
Python算法题(二)——国际象棋棋盘(排列组合问题,最小的K个数)
题目一(输出国际象棋棋盘) 分析: 用i控制行,j来控制列,根据i+j的和的变化来控制输出黑方格,还是白方格. 主要代码: for i in range(8): for j in range(8 ...
国际象棋棋盘输出-PHP代码