Symbian游戏编程入门 (四)图形显示 ------很棒的文章

40分钟快速入门Dart基础(上) 针对final 和const 理解的有点模糊的可以参考这篇文章: 可以参考这里Flutter 知识梳理(Dart)-Dart中static final const 区别看是不是超级好上手,好操作~其实Dart的整个学习起来还是蛮简单的,对于有基础的老司机更简单一些。分分钟敲起来~这篇文章就简单的介绍到这里如何短时间快速入门Dart,避免入坑。由于是想让大家快速入门Flutter,所以针对上面的这些章节我们讲解的只是一些在开发Flutter 过程中常用的一些方法和函数。 阅读详情

4.1 Window, Graphics Context 和Graphics Device

4.1.1 Window

在Symbian OS 中,所有的绘图都是在窗口中进行的,窗口是与系统进行交互的基本单位。我们在进行绘图前,首先要声明一个窗口:

CreateWindowL();

然后通过SetRect()来设置窗口的大小。

SetRect(aRect);

之后我们就可以进行绘图工作了。

4.1.2 Graphics Context

在Symbian 系统中,所有的绘图工作都是通过Graphics Context完成的。其中包括绘制点、绘制矩形和绘制文本等。所有的Graphics Context都由CGraphicsContent类派生。

CGraphicsContent类包括的特性有:

画笔(Pen):表示当前Graphics Context所有要绘制的线的绘图模式,包括颜色、宽度、样式等,可以通过SetPenColor(), SetPenSize(), SetPenStyle()等方法进行设置。

刷子(Brush):表示当前Graphics Context用以填充的绘图模式,包括填充颜色,样式、背景色等,可通过SetBrushColor(), SetBrushOrigin(), SetBrushStyle(),UseBrushPattern(), DiscardBrushPattern()等方法进行设置。

字体(Font):表示Graphics Contex当前所使用绘制文本的字体,使用UseFont(),DiscardFont()方法来设置或取消字体。

位置(Position):表示Graphics Contex的当前位置。可以通过MoveBy(), MoveTo()等方法来改变当前位置。

原点 (Origin):定义了相对于设备的原点的偏移量,默认值为(0,0),可以通过SetOrigin()来改变。

剪辑(Clipping):定义了需要进行裁切的区域,通过SetClippingRect(),CancelClippingRect()方法进行设置或取消裁切区域。

4.1.3 Graphics Device

在Symbian系统中,我们通过CGraphicsDevice实现Graphics Device,他指定了我们要操作的具体设备类的接口。

4.2 基本绘图函数的使用

设置好CGraphicsContent后,我们就可以通过调用相关方法在窗口中绘制图形。

4.2.1文本:

void DrawText(const TDesC& aText,const TPoint& aPosition)

void DrawText(const TDesC& aText,const TRect& aBox,TInt aBaselineOffset, TTextAlign aAlignment=ELeft,TInt aLeftMargin=0)

其中第一个直接在窗口中绘制文本,其中aText给出来要绘制的文本内容,aPosition制定了要绘制文本的起始位置。

第二个在绘制文本的同时,还要以给定的aBox绘制一个矩形外框。aAlignment参数指定了文本的对齐方向,默认为左对齐;aLeftMargin指定了间隔距离,默认值为0。

由于Symbian系统的内存受限制,所以,没有使用的字体系统是不会调入内存的,因此我们在绘制文本前,应该首先使用UseFont()设置系统的字体:

void UseFont(const CFont* aFont)

这样系统会将字体调入内存中。

在我们不使用这个字体以后,为了节省内存,要使用DiscardFont()释放掉内存中的字体。

void DiscardFont()

4.2.2点:

我们通过Plot()来绘制一个单独的点。点的绘制模式与当前的画笔(Pen)设置相同。void Plot(const TPoint& aPoint)

当画笔的宽度大于一个像素的时候,系统会以aPoint为圆心,画笔的宽度为直径绘制一个圆,并用画笔的颜色填充这个圆。

4.2.3线:

绘制直线的方法有DrawLine()、 DrawLineBy()、 DrawLineTo()和DrawPolyLine()、DrawArc(),绘制模式与当前的画笔(Pen)设置相同。

void DrawLine(const TPoint& aPoint1,const TPoint& aPoint2)

DrawLine()在aPoint1和aPonit2之间绘制一条直线。

void DrawLineTo(const TPoint& aPoint)

DrawLineTo()从当前点向aPoint绘制一条直线。

void DrawLineBy(const TPoint& aVector)

DrawLineBy()从当前点向相对当前点位置为aVector的点绘制一条直线。

void DrawPolyLine(const CArrayFix<TPoint>* aPointList)

DrawPolyLine()根据给定的位置数组从第一个点开始向第二个点绘制直线,然后以第二个点为起始点向第三个点绘制直线。。。。。。直到最后一个点。

在这里需要注意的一点是,在绘制直线的时候,系统并不绘制直线的最后一点,如果我们希望绘制一条包括最后一点的直线,我们可以使用上边的Plot()方法绘制最后一个点。

4.2.4图形:

我们可以使用系统提供的方法直接绘制五种简单图形,分别是矩形(rectangle)、圆角矩形(rounded rectangle)、多边形(polygon)、椭圆形(ellipse)和饼型(pie slice)。绘制模式和填充模式与当前的画笔(Pen)、刷子(Brush)设置相同

矩形:

void DrawRect(const TRect& aRect)

DrawRect()在屏幕上根据给定的aRect绘制矩形。

圆角矩形:

void DrawRoundRect(const TRect& aRect,const TSize& aCornerSize)

DrawRoundRect()在屏幕上根据给定的aRect绘制矩形,并根据给定的aCornerSize确定圆角的直径。

多边形:

TInt DrawPolygon(const CArrayFix<TPoint>* aPointList,TFillRule aFillRule=EAlternate)

TInt DrawPolygon(const TPoint* aPointList,TInt aNumPoints,TFillRule aFillRule=EAlternate)

DrawPolygon()根据给定的点集aPointList按顺序连接并按照aFillRule规则填充多边形。

椭圆形:

void DrawEllipse(const TRect& aRect)

DrawEllipse()在给定的aRect区域中绘制椭圆形。如果给定的区域是正方形,那么将绘制出圆形。

饼形:

void DrawPie(const TRect& aRect,const TPoint& aStart,const TPoint& aEnd)

DrawPie()通过给定的起始点aStart和结束点aEnd在由aRect形成的椭圆内截取相应的饼型区域。

4.3 Bmp文件的读取和显示

4.3.1读取:

首先 我们定义要读取的位图所在位置:

_LIT (KMultiBitmapFilename,"//system//apps//graphics//images.mbm");

其中images.mdm是我们的位图文件经过压缩打包的结果,是一个多位图文件。我们要在.mmp文件中作如下定义:

START BITMAP      images.mbm

HEADER

TARGETPATH        /system/apps/graphics

SOURCEPATH        ../bitmaps

SOURCE            c12  image1.bmp

SOURCE            c12  image2.bmp

END

系统产生一个位图头文件.mbg,这个头文件提供了一个访问位图的ID。例如,在Epoc32/include中的IMAGES.mbg文件包含如下内容:

enum TMbmImages{

      EMbmImagesImage1,

      EMbmImagesImage2,

      };

接下来我们定义:

CFbsBitmap* iImage1;

CFbsBitmap* iImage2;

然后我们就可以将mdm中的位图文件读取出来:

iImage1 = new (ELeave) CFbsBitmap();

CleanupStack::PushL(iImage1);

TInt loadException = iImage1 ->Load(KMultiBitmapFilename,EMbmImagesImage1);

User::LeaveIfError(loadException);

CleanupStack::Pop(iImage1);

4.3.2显示:

通过使用DrawBitmap()方法,可以将已经读取或绘制好的位图显示在窗口中。

void DrawBitmap(const TPoint& aTopLeft,const CFbsBitmap* aSource)

这里,aTopLeft指定了要绘制的位图的左上角坐标,aSource给出了要绘制的位图的内容。

void DrawBitmap(const TRect& aDestRect,const CFbsBitmap* aSource)

将给出的位图aSource绘制在指定的矩形区域aDestRect中。

void DrawBitmap(const TRect& aDestRect,const CFbsBitmap* aSource,const TRect& aSourceRect)

在给出的位图aSource中截取aSourceRect区域,将其内容绘制在指定的矩形区域aDestRect中。

4.4 像素级处理

可以通过使用TBitmapUtil类的一些方法对位图进行像素级的处理。包括:

void Begin(const TPoint& aPosition):设置当前要处理的像素位置,并锁定堆。

void End():解除对堆的锁定。

void SetPos(const TPoint& aPosition):改变当前像素位置至aPosition。

void IncXPos():将当前的X坐标自增1。

void DecXPos():将当前的X坐标自减1。

void IncYPos():将当前的Y坐标自增1。

void DecYPos():将当前的Y坐标自减1。

TUint32 GetPixel() const:获取当前像素的RGB值。

void SetPixel(TUint32 aValue):设置当前像素的RGB值。

下面我们通过将一个位图反转后写入另一张位图中的操作来说明TBitmapUtil类的使用方法。

利用前面已经生成并读取的位图:CFbsBitmap* iImage1和CFbsBitmap* iImage2。这里iImage2的长宽均大于iImage1,我们将iImage1反转装入iImage2中

首先关联要操作的位图:

TBitmapUtil bitmap1Util(iBitmap1);

TBitmapUtil bitmap2Util(iBitmap2);

 

接下来开始对位图操作,并设置初始点为(0,0):

bitmap1Util.Begin(TPoint(0,0));

bitmap2Util.Begin(TPoint(0,0));

 

下面从iBitmap1逐像素读取,并写入iBitmap2中:

TSize inSize = iBitmap1->SizeInPixels();

TInt xPos;

for (TInt yPos=0;yPos<inSize.iHeight;yPos++)

{

 bitmap1Util.SetPos(TPoint(0,yPos));

 bitmap2Util.SetPos(TPoint(yPos,0));

 for (xPos=0;xPos<inSize.iWidth;xPos++)

 {

  bitmap2Util.SetPixel(bitmap1Util);

  bitmap1Util.IncXPos();

  bitmap2Util.IncYPos();

 }

}

 

最后结束操作,清理堆栈

bitmap1Util.End();

bitmap2Util.End();

 

这样,我们就完成了将iImage1反转并写入iImage2中的工作。

 

转载自: http://blog.youkuaiyun.com/c30gcrk/archive/2007/11/13/1882509.aspx

UE5 GAS实战:从零构建一个MOBA英雄技能系统 本文详细介绍了如何利用UE5的Gameplay Ability System(GAS)构建MOBA英雄技能系统,涵盖核心组件如Ability System Component和GameplayEffect的使用,以及技能冷却、资源管理和连招系统等高级功能的实现。通过实战案例和代码示例,帮助开发者快速掌握GAS在MOBA游戏开发中的应用。 阅读详情

相关推荐

保姆级教程:用QSTEM和DrProbe搞定你的第一张STEM模拟图(附Fe3O4实例文件)

本文提供了一份详细的STEM模拟图像生成教程,涵盖从晶体结构获取到最终图像模拟的全过程。通过QSTEM和DrProbe软件的操作指南,帮助材料科学研究者快速掌握STEM模拟技术,特别适合初学者。教程包含Fe3O4实例文件,详细解析参数设置、计算优化和结果分析等关键步骤。

weixin_33730836的博客 522

Symbian绘图全过程

  void CExampleControl::DrawBitmap( const TPoint& aPoint, const CFbsBitmap* aBitmap ) { // 获得系统图形场景及控制矩形区域 CWindowGc& gc = Syst

838

树莓派5安装ROS1避坑指南:从系统配置到cmake报错全解决

本文详细介绍了在树莓派5上安装ROS1的完整流程,包括系统配置、环境变量设置、cmake报错解决等关键步骤。针对树莓派5的ARM架构特性,提供了从基础安装到高级调试的系统级解决方案,帮助开发者高效部署ROS1并避免常见编译陷阱。特别针对cmake报错问题,给出了深度解析和实用修复方法。

spark7igniter的博客 233

Symbian游戏编程入门 (四)图形显示

 4.1 Window, Graphics Context和Graphics Device4.1.1 Window在Symbian OS 中,所有的绘图都是在窗口中进行的,窗口是与系统进行交互的基本单位。我们在进行绘图前,首先要声明一个窗口:CreateWindowL();然后通过SetRect()来设置窗口的大小。SetRect(aRect);之后我们就可以进行绘图工

MagusSoft的专栏 7780

HLM(多层线性模型)在stata中语句

在阅读CEPS中发现有些研究采用的是HLM模型,HLM简单来说用一个方程跑两个回归。举例,对学习成绩影响因素,不同层有不同的影响,如在个体层面上个体特征会对成绩产生影响,在学校层面学校排名等因素会对成绩产生影响,两种因素不在一个层面,每层造成的差异都不相同。 在找相关语句时候发现操作这个语句的软件大多是SPSS和HLM,对于stata操作者并不友好。因此,在有限资料中总结了HLM在stata中的语句,后面会附上学习视频和链接。 先放语句,后面对方程式一个大致解析。由于针对HLM有一本书的介绍,可能一篇文章无

weixin_44652251的博客 1万+

PyTorch模型生产部署:ONNX/Triton导出与高可用架构实战

机器学习模型部署本质是训练环境与生产环境之间的运行时契约建立过程,涉及序列化协议、推理引擎兼容性、动态批处理及资源隔离等核心问题。ONNX凭借标准化算子集和跨框架支持,成为平衡兼容性、性能与可维护性的首选导出格式;Triton Inference Server则通过原生多框架支持、动态batching和热加载能力,显著提升GPU利用率与服务SLA保障水平。在金融风控、电商推荐等高要求场景中,基于ONNX+Triton+K8s的分层架构可稳定支撑千级QPS与毫秒级P95延迟,同时满足模型热更新、可观测性与版本

weixin_33857679的博客 447

137-QPainter和Graphics/View绘图-QPainter绘图-填充

用QPainter 绘图时如果所绘制的图形是封闭的,且为QPainter设置了画刷,则系统自动在封闭的图形内填充画刷的图案,封闭的图形包括绘图路径、矩形、椭圆、多边形。除此之外,还可以为指定的矩形范围填充图案,此时不需要有封闭的边界线QPainter的方法中用于填充的方法如表所示主要方法介绍如下。下面的程序绘制文字,用渐变色分别显示文字和背景色,并用定时器实现动态移动画刷的起始点,产生动画效果。

***** 843

数学不好是原罪——高等数学笔记(汇总版)

这是本人之前考研的高数手写笔记,工科学硕数一考了146(满分150),笔记有一定参考价值,欢迎大家收藏借鉴。

xuuyann 5万+

【qt】填充

【代码】【qt】坐标转换。

lsz441的博客 1300

CTFHUB------XSS反射型(WP)

文章目录前言XSS测试平台 前言 一开始我直接在上面写js脚本发现出错,最后发现只能通过下面的输入框来执行XSS测试,于是我们只能用XSS测试平台解决问题 XSS测试平台 注册一个XSS测试平台 这里随便填写 勾选默认模块就够了,点击下一步 这时会出现一个找个将代码复制 拼接到网站后缀name后面,点击send 这时平台会收到一个记录点开即可 得到flag ...

Y4tacker的博客 1万+

基于树莓派4B设计的厨房环境监测系统_368

本项目设计并实现了一种基于树莓派4B的厨房环境监测系统,提升厨房使用过程中的安全性与智能化水平。系统采用树莓派4B作为主控核心,集成DHT11温湿度传感器、MQ2烟雾传感器、火焰传感器、光敏传感器、水滴检测传感器等多种传感器,实现对厨房环境温湿度、烟雾、火焰、光照与溢水等参数的实时监测,并通过蜂鸣器进行本地报警。系统通过WIFI连接互联网,利用MQTT协议将环境数据上传至华为云物联网平台,实现远程可视化监控。

415

QPainter功能方法(5.12)

//for starf study #include "mainwindow.h" #include "ui_mainwindow.h" #include<QDebug> #include<QPaintDevice> #include<QImage> #include<QPainter> #include<QBrush> #include<QRectF > #include<QLineF> #include<.

For_1ove的博客 1445

【WRF安装】完整自动化 WRF-ARW/WRF-Chem 安装脚本(多服务器测试)

【WRF安装】完整自动化 WRF-ARW/WRF-Chem 安装脚本(多服务器测试)

WW、forever的博客 283

塞班系统(Symbian OS)技术性研究:移动操作系统的技术巅峰与时代局限

《塞班系统:功能机时代的智能先驱》摘要:2000年代初,塞班系统以70%市场份额统治智能手机市场。这款由诺基亚主导的操作系统凭借微内核架构(内核仅100KB)、低功耗优化和深度通信集成,在有限硬件上实现稳定多任务。其技术亮点包括模块化设计、内存压缩和差异化UI框架(S60/UIQ)。但随着触控交互和移动互联网兴起,塞班受限于单核优化、封闭生态和高开发门槛,最终被iOS/Android取代。尽管退出历史舞台,其低功耗管理、通信优先等设计理念仍影响现代操作系统。

fearhacker的专栏 2146

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

QStyle实现自绘界面项目实战(二)

利用QStyle实现自定义风格

danshiming的博客 2219

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

QPainter详解

QPainter详解

友善啊,朋友的博客 4万+

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

Qt 2D绘图(4):填充原理

Qt 2D绘图(4):填充原理 若对C++语法不熟悉,建议参阅《C++语法详解》一书,电子工业出版社出版,该书语法示例短小精悍,对查阅C++知识点相当方便,并对语法原理进行了透彻、深入详细的讲解,可确保读者彻底弄懂C++的原理,彻底解惑C++,使其知其然更知其所以然。此书是一本全面了解C++不可多得的案头必备图书。 需要使用到的QPainter类中的函数原型如表12-17所示 当绘制封闭的形状...

黄邦勇帅的博客 3815

The Brush Origin

 The Brush OriginOne attribute of a device context that you should be aware of when using dithered brush colors or hatch brushes is the brush origin. When Windows fills an area with a hatched or d

lemonade的专栏 1722

symbian图像显示

4.1 Window, Graphics Context和Graphics Device4.1.1 Window在Symbian OS 中,所有的绘图都是在窗口中进行的,窗口是与系统进行交互的基本单位。我们在进行绘图前,首先要声明一个窗口:CreateWindowL();然后通过SetRect()来设置窗口的大小。SetRect(aRect);之后我们就可以进行绘图工作了。

大浪捉鱼 1119

QPainter类参考

主页 | 所有的类 | 主要的类 | 注释的类 | 分组的类 | 函数 QPainter类参考 QPainter类低水平的绘制,例如在窗口部件上。 详情请见…… #include qpainter.h> 继承了Qt。 被QDirectPainter继承。 所有成员函数的列表。 公有成员 enum CoordinateMode { CoordDevice, C

yangchuankai's blog 1634

Qt::Painter 详解

转自:[QPainter类参考](http://www.kuqin.com/qtdocument/qpainter.html) QPainter类参考 QPainter类低水平的绘制,例如在窗口部件上。 详情请见…… #include &lt;qpainter.h&gt; 继承了Qt。 被QDirectPainter继承。 所有成员函数的列表。 公有成员 enum Coordina...

guo_lei_lamant的博客 5705

Symbian 图形编程入门

<br /><br />一 Symbian OS简介<br /> <br />1.1 Symbian操作系统的起源和现状<br /> <br />Symbian成立于1998年,由爱立信、诺基亚、摩托罗拉和Psion共同出资筹建。1999年,松下公司加入Symbian。2000年,世界上第一款采用Symbian操作系统的手机Ericsson R380成功上市,同年,索尼公司和三洋公司获得了Symbian 的授权。 2001年, 富士通公司获得了Symbian的授权。诺基亚公司推出了Nokia 7650-基于

World of iOs 1039

Qpainter详解

QT绘图

weixin_53090658的博客 2325

Symbian学习笔记一环境搭建

最近这段时间开始接触智能手机的开发,说道智能手机,那我们就得好好的说到几个概念:第一个啥叫智能手机,其实智能手机的概念很简单就是能在手机操作系统上安装各种的应用,简单吧,实际就是怎么简单,现在有很多的手机都是智能手机,比如典型的机型:Nokia 73以及如雷贯耳iPhone,现在的iPhone火得不得了,Apple的CEO乔布斯现在牛的不得了,谁都不放在眼里,不爽了就直接开骂,希望乔老。。。。

王者归来 1134

Symbian学习笔记(13):让程序随系统启动的尝试

在论坛上看到这方面的几个帖子,想到已有好几天没写博了,最近在折腾MTK的东西,累啊。今天就抽空研究一下如何在S60第三版中做一个自启动应用吧。 参考这篇文章:How to autostart an application on boot up in 3rd- Startup List Management APIhttp://wiki.forum.nokia.com/index.php/How_t

SHARE & TOP 3839

手机操作系统学习总结

手机操作系统 手机操作系统主要应用在智能手机上。主流的智能手机有Google Android和苹果的iOS等。智能手机与非智能手机都支持JAVA,智能机与非智能机的区别主要看能否基于系统平台的功能扩展,非JAVA应用平台,还有就是支持多任务。 手机操作系统一般只应用在智能手机上。目前,在智能手机市场上,中国市场仍以个人信息管理型手机为主,随着更多厂商的加入,整体市场的竞争已经开始呈现出分散化的

bcbobo21cn的专栏 1万+
上一篇: TUTORIALS: BIT DEPTH ----待翻译
下一篇: [Symbian项目进展]网络流量曲线图,代码+效果图
WaveDHW
博客等级 码龄20年 455粉丝 159原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值