如何使用CSS3画出一个叮当猫

刚学习了这个案例,然后觉得比较好玩,就练习了一下。然后发现其实也不难,如果你经常使用PS或者Flash的话,应该就会知道画个叮当猫是很容易 的事,至少我是这么觉得。但是,用CSS3画出来确实是第一次接触,所以很乐意去尝试一下,对于我这种菜鸟,确实是帮助不少,至少懂得如何去画一个简单的 人物形象出来,再加上一些动画效果,就活了,那就更好玩了!OK,开始之前,先把效果图晒一下:

PS:说实话,我觉得挺可爱的,小时候经常看多啦A梦,突然感觉很亲切,很童真,瞬间年轻了好多,哈哈!热烈的笑脸

首先,先把HTML结构搭建好:

<div class="wrapper">
 <!--叮当猫整体-->
 <div class="doraemon">
 <!--头部-->
 <div class="head">
 <!--眼睛-->
 <div class="eyes">
 <div class="eye left">
  <!--眼珠-->
  <div class="black bleft"></div>
 </div>
 <div class="eye right">
  <div class="black bright"></div>
 </div>
 </div>
 <!--脸部-->
 <div class="face">
 <!--白色脸底-->
 <div class="white"></div>
 <!--鼻子-->
 <div class="nose">
  <!--鼻子高光部分-->
  <div class="light"></div>
 </div>
 <!--鼻子的竖线-->
 <div class="nose_line"></div>
 <!--嘴巴-->
 <div class="mouth"></div>
 <!--胡须-->
 <div class="whiskers">
  <div class="whisker rTop r160"></div>
  <div class="whisker rMiddle"></div>
  <div class="whisker rBottom r20"></div>
  <div class="whisker lTop r20"></div>
  <div class="whisker lMiddle"></div>
  <div class="whisker lBottom r160"></div>
 </div>
 </div>
 </div>
 <!--脖子和铃铛-->
 <div class="choker">
 <!--铃铛-->
 <div class="bell">
 <div class="bell_line"></div>
 <div class="bell_circle"></div>
 <div class="bell_under"></div>
 <div class="bell_light"></div>
 </div>
 </div>
 <!--身体-->
 <div class="bodys">
 <!--肚子-->
 <div class="body"></div>
 <!--肚兜-->
 <div class="wraps"></div>
 <!--口袋-->
 <div class="pocket"></div>
 <!--遮住一半口袋,使其呈现半圆-->
 <div class="pocket_mask"></div>
 </div>
 <!--右手-->
 <div class="hand_right">
 <!--手臂-->
 <div class="arm"></div>
 <!--手掌-->
 <div class="circle"></div>
 <!--遮住手臂和身子交接处的线-->
 <div class="arm_rewrite"></div>
 </div>
 <!--左手-->
 <div class="hand_left">
 <div class="arm"></div>
 <div class="circle"></div>
 <div class="arm_rewrite"></div>
 </div>
 <!--脚-->
 <div class="foot">
 <div class="left"></div>
 <div class="right"></div>
 <!--双脚之间的缝隙-->
 <div class="foot_rewrite"></div>
 </div>
 </div>
</div>

最好先把叮当猫的整体结构仔细研究一下,这对以后想要自己动手画别的人物形象很有帮助,思路会比较明朗。

接下来,我们按照头部,脖子,身体,脚部分别进行演示。首先将容器wrapper和叮当猫整体做一些基本的样式,叮当猫整体doraemon 设置position为relative,主要是为了便于 子元素/后代元素进行定位。

.wrapper{
 margin: 50px 0 0 500px;
}
.doraemon{
 position: relative;
} 

头部head的样式,因为叮当猫的头部不是正圆,所以宽高有一点偏差,然后使用border-radius将头部从矩形变成椭圆形,然后再使用径向渐变从右上角给背景来个放射性渐变,然后在加个阴影,使其更有立体感,background:#07bbee;是为了兼容低版本浏览器:

.doraemon .head {
 position:relative;
 width: 320px;
 height: 300px;
 border-radius: 150px;
 background: #07bbee;
 background: -webkit-radial-gradient(right top,#fff 10%,#07bbee 20%,#10a6ce 75%,#000);
 background: -moz-radial-gradient(right top,#fff 10%,#07bbee 20%,#10a6ce 75%,#000);
 background: -ms-radial-gradient(right top,#fff 10%,#07bbee 20%,#10a6ce 75%,#000);
 border:2px solid #555;
 box-shadow:-5px 10px 15px rgba(0,0,0,0.45);
}

看看效果到底怎么样:

惊讶 shenmgui ,这么丑,别急,慢慢让它活过来:

/*脸部*/
 .doraemon .face {
 position: relative; /*让所有脸部元素可自由定位*/
 z-index: 2; /*脸在头部背景上面*/
 }
 /*白色脸底*/
 .doraemon .face .white {
 width: 265px; /*设置宽高*/
 height: 195px;
 border-radius: 150px;
 position: absolute; /*进行绝对定位*/
 top: 75px;
 left: 25px;
 background: #fff;
 /*此放射渐变也是使脸的左下角暗一些,看上去更真实*/
 background: -webkit-radial-gradient(right top,#fff 75%,#eee 80%,#999 90%,#444);
 background: -moz-radial-gradient(right top,#fff 75%,#eee 80%,#999 90%,#444);
 background: –ms-radial-gradient(right top,#fff 75%,#eee 80%,#999 90%,#444);
 }
 /*鼻子*/
 .doraemon .face .nose{
 width:30px;
 height:30px;
 border-radius:15px;
 background:#c93300;
 border:2px solid #000;
 position:absolute;
 top:110px;
 left:140px;
 z-index:3; /*鼻子在白色脸底下面*/
 }
 /*鼻子上的高光*/
 .doraemon .face .nose .light {
 width:10px;
 height:10px;
 border-radius: 5px;
 box-shadow: 19px 8px 5px #fff; /*通过阴影实现高光*/
 }
 /*鼻子下的线*/
 .doraemon .face .nose_line{
 width:3px;
 height:100px;
 background:#333;
 position:absolute;
 top:143px;
 left:155px;
 z-index:3;
 }
 /*嘴巴*/
 .doraemon .face .mouth{
 width:220px;
 height:400px;
 /*通过底边框加上圆角模拟微笑嘴巴*/
 border-bottom:3px solid #333;
 border-radius:120px;
 position:absolute;
 top:-160px;
 left:45px;
 }
 /*眼睛*/
 .doraemon .eyes {
 position: relative;
 z-index: 3; /*眼睛在白色脸底下面*/
 }
 /*眼睛共同的样式*/
 .doraemon .eyes .eye{
 width:72px;
 height:82px;
 background:#fff;
 border:2px solid #000;
 border-radius:35px 35px;
 position:absolute;
 top:40px;
 }
 /*眼珠*/
 .doraemon .eyes .eye .black{
 width:14px;
 height:14px;
 background:#000;
 border-radius:7px;
 position:absolute;
 top:40px;
 }
 .doraemon .eyes .left{
 left:82px;
 }
 .doraemon .eyes .right {
 left: 156px;
 }
 .doraemon .eyes .eye .bleft {
 left: 50px;
 } 

 .doraemon .eyes .eye .bright {
 left: 7px;
 }

写了这么多样式,结果是怎么样的呢:

生病 怎么看都觉得别扭,哦!还差胡须须和白色脸底的边框呢,咱给补上:

/*胡须背景,主要用于挡住嘴巴的一部分,不要显得太长*/
 .doraemon .whiskers{
 width:220px;
 height:80px;
 background:#fff;
 border-radius:15px;
 position:absolute;
 top:120px;
 left:45px;
 z-index:2; /*在鼻子和眼睛下面*/
 }
 /*所有胡子的公用样式*/
 .doraemon .whiskers .whisker {
 width: 60px;
 height: 2px;
 background: #333;
 position: absolute;
 z-index: 2;
 }
 /*右上胡子*/
 .doraemon .whiskers .rTop {
 left: 165px;
 top: 25px;
 }
 /*右中胡子*/
 .doraemon .whiskers .rMiddle {
 left: 167px;
 top: 45px;
 }
 /*右下胡子*/
 .doraemon .whiskers .rBottom {
 left: 165px;
 top: 65px;
 }
 /*左上胡子*/
 .doraemon .whiskers .lTop {
 left: 0;
 top: 25px;
 }
 /*左中胡子*/
 .doraemon .whiskers .lMiddle {
 left: -2px;
 top: 45px;
 }
 /*左下胡子*/
 .doraemon .whiskers .lBottom {
 left: 0;
 top: 65px;
 }
 /*胡子旋转角度*/
 .doraemon .whiskers .r160 {
 -webkit-transform: rotate(160deg);
 -moz-transform: rotate(160deg);
 -ms-transform: rotate(160deg);
 -o-transform: rotate(160deg);
 transform: rotate(160deg);
 }
 .doraemon .whiskers .r20 {
 -webkit-transform: rotate(200deg);
 -moz-transform: rotate(200deg);
 -ms-transform: rotate(200deg);
 -o-transform: rotate(200deg);
 transform: rotate(200deg);
 } 

微笑 这样就对了,看着多舒服啊!趁热打铁,做脖子和身体:

/*围脖*/
 .doraemon .choker {
 width: 230px;
 height: 20px;
 background: #c40;
 /*线性渐变 让围巾看上去更自然*/
 background: -webkit-gradient(linear,left top,left bottom,from(#c40),to(#800400));
 background: -moz-linear-gradient(center top,#c40,#800400);
 background: -ms-linear-gradient(center top,#c40,#800400);
 border: 2px solid #000;
 border-radius: 10px;
 position: relative;
 top: -40px;
 left: 45px;
 z-index: 4;
 }
 /*铃铛*/
 .doraemon .choker .bell {
 width: 40px;
 height: 40px;
 _overflow: hidden; /*IE6 hack*/
 border: 2px solid #000;
 border-radius: 50px;
 background: #f9f12a;
 background: -webkit-gradient(linear, left top, left bottom, from(#f9f12a),color-stop(0.5, #e9e11a), to(#a9a100));
 background: -moz-linear-gradient(top, #f9f12a, #e9e11a 75%,#a9a100);
 background: -ms-linear-gradient(top, #f9f12a, #e9e11a 75%,#a9a100);
 box-shadow: -5px 5px 10px rgba(0,0,0,0.25);
 position: absolute;
 top: 5px;
 left: 90px;
 }
 /*双横线*/
 .doraemon .choker .bell_line {
 width: 36px;
 height: 2px;
 background: #f9f12a;
 border: 2px solid #333;
 border-radius: 3px 3px 0 0;
 position: absolute;
 top: 10px;
 }
 /*黑点*/
 .doraemon .choker .bell_circle{
 width:12px;
 height:10px;
 background:#000;
 border-radius:5px;
 position:absolute;
 top:20px;
 left:14px;
 }
 /*黑点下的线*/
 .doraemon .choker .bell_under{
 width: 3px;
 height:15px;
 background:#000;
 position:absolute;
 left: 18px;
 top:27px;
 }
 /*铃铛高光*/
 .doraemon .choker .bell_light{
 width:12px;
 height:12px;
 border-radius:10px;
 box-shadow:19px 8px 5px #fff;
 position:absolute;
 top:-5px;
 left:5px;
 opacity:0.7;
 }
 /*身子*/
 .doraemon .bodys {
 position: relative;
 top: -310px;
 }
 /*肚子*/
 .doraemon .bodys .body {
 width: 220px;
 height: 165px;
 background: #07beea;
 background: -webkit-gradient(linear,right top,left top,from(#07beea),color-stop(0.5, #0073b3),color-stop(0.75,#00b0e0), to(#0096be));
 background: -moz-linear-gradient(right center,#07beea,#0073b3 50%,#00b0e0 75%,#0096be 100%);
 background: -ms-linear-gradient(right center,#07beea,#0073b3 50%,#00b0e0 75%,#0096be 100%);
 border:2px solid #333;
 position:absolute;
 top:265px;
 left:50px;
 }
 /*白色肚兜*/
 .doraemon .bodys .wraps {
 width: 170px;
 height: 170px;
 background: #fff;
 background: -webkit-gradient(linear, right top, left bottom, from(#fff),color-stop(0.75,#fff),color-stop(0.83,#eee),color-stop(0.90,#999),color-stop(0.95,#444), to(#000));
 background: -moz-linear-gradient(right top,#fff,#fff 75%,#eee 83%,#999 90%,#444 95%,#000);
 background: -ms-linear-gradient(right top,#fff,#fff 75%,#eee 83%,#999 90%,#444 95%,#000);
 border: 2px solid #000;
 border-radius: 85px;
 position: absolute;
 left: 72px;
 top: 230px;
 }
 /*口袋*/
 .doraemon .bodys .pocket {
 width: 130px;
 height: 130px;
 border-radius: 65px;
 background: #fff;
 background: -webkit-gradient(linear, right top, left bottom, from(#fff),color-stop(0.70,#fff),color-stop(0.75,#f8f8f8),color-stop(0.80,#eee),color-stop(0.88,#ddd), to(#fff));
 background: -moz-linear-gradient(right top, #fff, #fff 70%,#f8f8f8 75%,#eee 80%,#ddd 88%, #fff);
 background: -ms-linear-gradient(right top, #fff, #fff 70%,#f8f8f8 75%,#eee 80%,#ddd 88%, #fff);
 border: 2px solid #000;
 position:absolute;
 top: 250px;
 left: 92px;
 }
 /*挡住口袋一半*/
 .doraemon .bodys .pocket_mask {
 width: 134px;
 height: 60px;
 background:#fff;
 border-bottom: 2px solid #000;
 position:absolute;
 top: 259px;
 left: 92px;
 }

好吧,脖子和身子都有啦!上图:

现在看起来有点像摆设品,不过笑容还是那么单纯,好了,赶紧把手脚做出来:

/

*左右手*/
 .doraemon .hand_right, .doraemon .hand_left {
 height: 100px;
 width: 100px;
 position: absolute;
 top: 272px;
 left: 248px;
 }
 /*左手*/
 .doraemon .hand_left {
 left: -10px;
 }
 /*手臂公共部分*/
 .doraemon .arm {
 width:80px;
 height:50px;
 background: #07beea;
 background: -webkit-gradient(linear, left top, left bottom, from(#07beea),color-stop(0.85,#07beea), to(#555));
 background: -moz-linear-gradient(center top, #07BEEA, #07BEEA 85%, #555);
 background: -ms-linear-gradient(center top, #07BEEA, #07BEEA 85%, #555);
 border: 1px solid #000000;
 box-shadow: -10px 7px 10px rgba(0, 0, 0, 0.35);
 z-index: -1;
 position: relative;
 }
 /*右手手臂*/
 .doraemon .hand_right .arm {
 top: 17px;
 -webkit-transform: rotate(35deg);
 -moz-transform: rotate(35deg);
 -ms-transform: rotate(35deg);
 -o-transform: rotate(35deg);
 transform: rotate(35deg);
 }
 /*左手手臂*/
 .doraemon .hand_left .arm {
 top: 17px;
 background: #0096be; /*背光一面使用纯色,使其有立体感*/
 box-shadow: 5px -7px 10px rgba(0, 0, 0, 0.25);
 -webkit-transform: rotate(145deg);
 -moz-transform: rotate(145deg);
 -ms-transform: rotate(145deg);
 -o-transform: rotate(145deg);
 transform: rotate(145deg);
 }
 /*圆形手掌公共部分*/
 .doraemon .circle {
 width: 60px;
 height: 60px;
 border-radius: 30px;
 border: 2px solid #000;
 background: #fff;
 background: -webkit-gradient(linear, right top, left bottom, from(#fff),color-stop(0.5,#fff),color-stop(0.70,#eee),color-stop(0.8,#ddd), to(#999));
 background: -moz-linear-gradient(right top, #fff, #fff 50%, #eee 70%, #ddd 80%,#999);
 background: -ms-linear-gradient(right top, #fff, #fff 50%, #eee 70%, #ddd 80%,#999);
 position: absolute;
 }
 /*右手手掌*/
 .doraemon .hand_right .circle {
 left: 40px;
 top: 32px;
 }
 /*左手手掌*/
 .doraemon .hand_left .circle {
 left: -20px;
 top: 32px;
 }
 /*手臂和身体结合处,使用背景遮住边框*/
 .doraemon .arm_rewrite {
 height: 45px;
 width: 5px;
 background: #07beea;
 position: relative;
 }
 /*右手结合处*/
 .doraemon .hand_right .arm_rewrite {
 top: -45px;
 left: 22px;
 }
 /*左手结合处*/
 .doraemon .hand_left .arm_rewrite {
 top: -45px;
 left: 60px;
 background: #0096be; /*同理,背光一面使用纯色,使其有立体感*/
 }
 /*脚部*/
 .doraemon .foot {
 width: 280px;
 height: 40px;
 position: relative;
 top: 55px;
 left: 20px;
 }
 /*左右脚共同样式*/
 .doraemon .foot .left, .doraemon .foot .right {
 width: 125px;
 height: 30px;
 background: #fff;
 background: -webkit-gradient(linear, right top, left bottom, from(#fff),color-stop(0.75,#fff),color-stop(0.85,#eee), to(#999));
 background: -moz-linear-gradient(right top, #fff, #fff 75%, #eee 85%, #999);
 background: -ms-linear-gradient(right top, #fff, #fff 75%, #eee 85%, #999);
 border: 2px solid #333;
 border-radius: 80px 60px 60px 40px;
 box-shadow: -6px 0 10px rgba(0, 0, 0, 0.35);
 position: relative;
 }
 .doraemon .foot .left {
 left: 8px;
 top: 65px;
 } 

 .doraemon .foot .right {
 top: 31px;
 left: 141px;
 }
 /*双脚之间的缝隙,加阴影使用立体感*/
 .doraemon .foot .foot_rewrite {
 width: 20px;
 height: 10px;
 background: #fff;
 background: -webkit-gradient(linear, right top, left bottom, from(#666),color-stop(0.83,#fff), to(#fff));
 background: -moz-linear-gradient(right top, #666, #fff 83%, #fff);
 background: -ms-linear-gradient(right top, #666, #fff 83%, #fff);
 /*制作半圆效果*/
 border: 2px solid #000;
 border-bottom: none;
 border-radius: 40px 40px 0 0;
 position: relative;
 top: -11px;
 left: 130px;
 _left: 127px;
 } 

好了,最后完整结果:

看一下,效果是不是和一开始的一样呢 大笑 ,虽然做好了,但是还是可以让它动起来的,比如眼睛,我们可以给它加个动画效果,让眼睛转动起来:

/*眼珠*/
 .doraemon .eyes .eye .black {
 width: 14px;
 height: 14px;
 background: #000;
 border-radius: 7px;
 position: absolute;
 top: 40px;
 -webkit-animation: eyemove 3s linear infinite;
 -moz-animation: eyemove 3s linear infinite;
 -ms-animation: eyemove 3s linear infinite;
 -o-animation: eyemove 3s linear infinite;
 animation: eyemove 3s linear infinite;
 } 

 /*让眼睛动起来*/
 @-webkit-keyframes eyemove {
 70%{
 margin:0 0 0 0;
 }
 80% {
 margin: -22px 0 0 0;
 } 

 85% {
 margin: -22px 0 0 5px;
 } 

 90% {
 margin: -22px 10px 0 0;
 } 

 93% {
 margin: -22px 0 0 0;
 } 

 96% {
 margin: 0 0 0 0;
 }
 } 

 @-moz-keyframes eyemove {
 70% {
 margin: 0 0 0 0;
 } 

 80% {
 margin: -22px 0 0 0;
 } 

 85% {
 margin: -22px 0 0 5px;
 } 

 90% {
 margin: -22px 10px 0 0;
 } 

 93% {
 margin: -22px 0 0 0;
 } 

 96% {
 margin: 0 0 0 0;
 }
 } 

 @-o-keyframes eyemove {
 70% {
 margin: 0 0 0 0;
 } 

 80% {
 margin: -22px 0 0 0;
 } 

 85% {
 margin: -22px 0 0 5px;
 } 

 90% {
 margin: -22px 10px 0 0;
 } 

 93% {
 margin: -22px 0 0 0;
 } 

 96% {
 margin: 0 0 0 0;
 }
 }
 @keyframes eyemove {
 70% {
 margin: 0 0 0 0;
 } 

 80% {
 margin: -22px 0 0 0;
 } 

 85% {
 margin: -22px 0 0 5px;
 } 

 90% {
 margin: -22px 10px 0 0;
 } 

 93% {
 margin: -22px 0 0 0;
 } 

 96% {
 margin: 0 0 0 0;
 }
 }

OK,这样,眼睛就会动了,有兴趣的可以试一下,这里就无法展示了。但是如果你有什么更好的动画效果也可以尝试,那么这个案例就结束了。

PS:虽然这只是一个案例,不过确实帮助我开阔思维,而且其实做一个这样的效果,可能会花费很多时间,至少对我来说目前确实是这样子,主要难点还是布局定位和颜色的合理搭配,才能使形象更加逼真生动!可能也有人对PS或者Flash等图形处理软件不是很熟,对用CSS3画出一些人物或者其他效果比较没有头绪,那么就可以去一些网站参考设计师们的设计构图,图形分解等相关设计知识,帮助我们更好地理解。

以上是本文的全部内容,希望大家可以喜欢,动手去实践一下。

(0)

相关推荐

  • CSS3实现动态背景登录框的代码

    基于CSS3动态背景登录框代码.这是一款基于jQuery+CSS3实现的带有动画效果的动态背景登陆框特效.效果图如下: 实现的代码如下: html代码: <div class="htmleaf-container"> <div class="wrapper"> <div class="container"> <h1>Welcome</h1> <form class="fo

  • Css3制作变形与动画效果

    下面通过图文并茂的方式给大家展示下css3制作变形与动画效果 css3制作动画的几个属性:变形(transform),过渡(transition)和动画(animation). 下面介绍:过渡transition. 一.例子 先通过一个例子感性认识一下transition的动画效果. 鼠标放上去,div宽度从100px增大到200px. <style type="text/css"> div{ width: 100px; height: 100px; background-

  • 如何使用CSS3画出一个叮当猫

    刚学习了这个案例,然后觉得比较好玩,就练习了一下.然后发现其实也不难,如果你经常使用PS或者Flash的话,应该就会知道画个叮当猫是很容易 的事,至少我是这么觉得.但是,用CSS3画出来确实是第一次接触,所以很乐意去尝试一下,对于我这种菜鸟,确实是帮助不少,至少懂得如何去画一个简单的 人物形象出来,再加上一些动画效果,就活了,那就更好玩了!OK,开始之前,先把效果图晒一下: PS:说实话,我觉得挺可爱的,小时候经常看多啦A梦,突然感觉很亲切,很童真,瞬间年轻了好多,哈哈!热烈的笑脸 首先,先把H

  • javascript 7行代码画出一个围棋棋盘

    function qi(q){ var t=["┏","┯","┓","┠","┼","┨","┗","┷","┛","╋"],text=[]; for(y=0;y●":"●"; } } return text.join(""); } var q=[{x:5,

  • JS拖动鼠标画出方框实现鼠标选区的方法

    本文实例讲述了JS拖动鼠标画出方框实现鼠标选区的方法.分享给大家供大家参考.具体如下: 相当实用的一个JS技巧,拖动鼠标可画出一个方框,可作为一个选区的功能,可以用来画流程图,设计草图什么的,也可以作为上传头像时裁切选择图片,在头像裁切中使用广泛,鼠标在图片上拖动拉出一个方框,这个方框就代表着选区的功能,目前网页上已流行的一种操作.主要是依赖于JavaScript代码来实现. 运行效果如下图所示: 具体代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHT

  • 用Python字符画出了一个谷爱凌

    目录 怎么实现的? 运行方法 原理分析 完整代码 之前经常在网上看到那种由一个个字符构成的视频,非常炫酷.一直不懂是怎么做的,这两天研究了一下,发现并不难. 先来看一个最终效果(如果模糊的话,点击下方链接看高清版): https://pan.baidu.com/s/1DvedXlDZ4dgHKLogdULogg 提取码:1234 怎么实现的? 简单来说,要将一个彩色的视频变成字符画出来的黑白视频,用下面几步就能搞定: 对原视频进行抽帧,对每一帧黑白化,并将像素点用对应的字符表示. 将表示出来的字

  • SQL语句(T-SQL汇总) 用T-SQL画出这些图形

    我个人感觉数据库这方面对于程序员来说很重要,无论是对于JAVA程序员还是DOTNET程序员以及其他编程人员来说都是必须掌握的.为了帮助大家更好的来回顾T-SQL,本人利用空闲的时间整理的一下T-SQL的语句和语法.希望对大家有用! 好的!我们先来看几个图像: 棱形三角形正方形圆形矩形梯形 上面这些图形都是用T-SQL实现的,文章的最后我们一起来用T-SQL画出这些图形. 首先,我们开始回顾一下T-SQL的基本语法: 函数 abs(x):求绝对值: 例: select abs(-3) 值为:3 s

  • Android中SurfaceView和view画出触摸轨迹

    一.引言          想实现一个空白的画板,上面可以画出手滑动的轨迹,就这么一个小需求.一般就来讲就两种实现方式,view或者surfaceview.下面看看两种是如何实现的. 二.实现原理          先简单说一下实现原理:        (1)用一张白色的Bitmap作为画板        (2)用canvas在bitmap上画线        (3)为了画出平滑的曲线,要用canvas的drawPath(Path,Paint)方法.        (4)同时使用贝塞尔曲线来使曲

  • Android实现在map上画出路线的方法

    本文实例讲述了Android实现在map上画出路线的方法.分享给大家供大家参考.具体如下: 最近在搞在地图上画出路线图,经过一段时间的摸索,终于搞明白了,其实也挺简单的,写个类继承Overlay,并重写draw方法,在draw方法中画出 path即可.对于Overaly,在地图上标记某个点或者画线之类的就要使用overlay,overlay相当于一个覆盖物,覆盖在地图上,这个覆盖物要自己实现所以要继承Overlay. MapActivity.java如下: package net.blogjav

  • Java实现两人五子棋游戏(三) 画出棋子

    上一篇文章讲的是Java实现两人五子棋游戏(二) 画出棋盘,已经画好棋盘,接下来要实现控制功能,主要功能: 1)选择棋子 2)画棋子 3)判断胜负 4)交换行棋方 先实现画棋子PART -------------画棋子代码示例如下-------------- 首先,定义一个棋子类,这个类有两个属性,棋子颜色(0-表示黑色,1-表示白色),是否落子(我计划用一个二维数组才存储棋子的落子信息) Chessman.java package xchen.test.simpleGobang; public

  • python使用插值法画出平滑曲线

    本文实例为大家分享了python使用插值法画出平滑曲线的具体代码,供大家参考,具体内容如下 实现所需的库 numpy.scipy.matplotlib 实现所需的方法 插值 nearest:最邻近插值法 zero:阶梯插值 slinear:线性插值 quadratic.cubic:2.3阶B样条曲线插值 拟合和插值的区别 简单来说,插值就是根据原有数据进行填充,最后生成的曲线一定过原有点. 拟合是通过原有数据,调整曲线系数,使得曲线与已知点集的差别(最小二乘)最小,最后生成的曲线不一定经过原有点

随机推荐