函数纹理(国际象棋棋盘纹理&粗布纹理)MFC
函数纹理(国际象棋棋盘纹理&粗布纹理)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++ 永不过时!
函数纹理(国际象棋棋盘纹理&粗布纹理)MFC的更多相关文章
- 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代码
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- python绘制国际象棋棋盘核心代码
import turtle step = 40 for i in range(8): for j in range(8): turtle.penup() turtle.goto(i*step, j*s ...
- 使用turtle库画国际象棋棋盘
import turtle n = 60 # 每行间隔,小格子边长 x = -300 # x初始值 y = -300 # x初始值 def main(): turtle.speed(11) turtl ...
- OpenGL ES 详解纹理生成和纹理映射步骤以及函数
通常一个纹理映射的步骤是: 创建纹理对象.就是获得一个新的纹理句柄 ID. 指定纹理.就是将数据赋值给 ID 的纹理对象,在这一步,图像数据正式加载到了 ID 的纹理对象中. 设定过滤器.定义了ope ...
- Unity Shader入门精要学习笔记 - 第7章 基础纹理
转自 冯乐乐的 <Unity Shader 入门精要> 纹理最初的目的就是使用一张图片来控制模型的外观.使用纹理映射技术,我们可以把一张图“黏”在模型表面,逐纹素地控制模型的颜色. 在美术 ...
随机推荐
- 【python】版本35 正则-非库-爬虫-读写xlw文件
#交代:代码凌乱,新手一个,论坛都是高手,我也是鼓了很大勇气,发出来就是被批评和进步的 #需求:需要对某网站的某id子标签批量爬取,每个网页的id在xlw里,爬取完,再批量存取到这xlw里的第6行 ...
- win32程序之窗口程序,以及消息机制
win32程序值窗口程序,以及消息机制 一丶简介 通过上一讲.我们了解了窗口其实是绘制出来的.而且是不断绘制的过程. 所以窗口的本质是绘制. 但是我们现在看到的窗口程序.都可以点击关闭按钮. 使用鼠标 ...
- 【转载】uCOS系统的思考
一: 世界潮流,浩浩汤汤,顺之者昌,逆之者亡---孙中山 从80X86到ARM9,再从ARM9到ARM7,平台是越做越简单,但是简单并不是意味着退步,反而是种潮流趋势... 在CISC道路上渐行渐远 ...
- Android Navigation 架构组件入门教程
Android Navigation 架构组件入门教程 版权声明:本文为博主原创文章,未经博主允许不得转载. 转载请表明出处:https://www.cnblogs.com/cavalier-/p/1 ...
- python语法风格
这里只给出其它文章里不适合出现部分语法风格. python有几种类型的复合语句:if.for.while.def.class.try/except.with/as等.这些复合类型的语句在编写时,要遵循 ...
- 翻译:如何向MariaDB中快速插入数据(已提交到MariaDB官方手册)
本文为mariadb官方手册:How to Quickly Insert Data Into MariaDB的译文. 原文:https://mariadb.com/kb/en/how-to-quick ...
- C# 实现Jwtbearer Authentication
Jwtbearer Authentication 什么是JWT JWT(JSON Web Token), 顾名思义就是在Web上以JSON格式传输的Token(RFC 7519). 该Token被设计 ...
- [android] 隐式意图激活另外一个activity
随着api的升级,系统的很多应用包名和类名都改掉了,所以很多时候,打开系统应用的时候会报错,隐式意图就是解决组件之间松耦合,描述动作行为 获取Intent对象,通过new出来 调用Intent对象的s ...
- 【Spring】使用Spring发送邮件
Spring Email抽象的核心是MailSender接口,MailSender的实现能够通过连接Email服务器实现邮件发送的功能,如下图: Spring自带一个MailSender的实现就是Ja ...
- Maven(七)Eclipse使用Maven命令
由于没有mvn compile (其余命令类似) 可以点解上面框中选项手动输入compile