整合營銷服務(wù)商

          電腦端+手機端+微信端=數(shù)據(jù)同步管理

          免費咨詢熱線:

          jsp實現(xiàn)-圓形和梯形面積的計算

          jsp實現(xiàn)-圓形和梯形面積的計算

          先編寫:main.jsp:用來實現(xiàn)用戶界面的輸入。

          <%@ page contentType="text/html;charset=gb2312"%>

          <html>

          <head></head>

          <body bgcolor="yellow">

          <form action="circle.jsp" method=get>//發(fā)送到circle.jsp

          圓形半徑:<input type="text" value="" name="t1"></br>

          <input type="submit" value="提交">

          </form>

          <form action="ladder.jsp" method=get>//發(fā)送到ladder.jsp

          梯形上底:<input type="text" value="" name="top"></br>

          梯形下底:<input type="text" value="" name="bottom"></br>

          &nbsp;&nbsp;&nbsp;梯形高:<input type="text" value="" name="height"></br>

          <input type="submit" value="提交">

          </form>

          </body>

          </html>

          在編寫circle.jsp://用來計算圓形面積

          <%@ page contentType="text/html;charset=gb2312"%>

          <html>

          <head></head>

          <body bgcolor="yellow">

          <%!

          public double getArea(double r){

          double area=3.14*r*r;

          return area;

          }

          %>

          <%

          String c1=request.getParameter("t1");//獲取用戶輸入的半徑

          double c2=Double.parseDouble(c1);//轉(zhuǎn)成double

          %>

          </br>半徑為<%=c2%>的圓形的面積:<%=getArea(c2)%>//調(diào)用計算面積的方法

          </body>

          </html>


          在編寫:ladder.jsp:用來計算梯形的面積

          <%@ page contentType="text/html;charset=gb2312"%>

          <html>

          <head></head>

          <body bgcolor="yellow">

          <%!

          public double getArea(double t,double b,double h){

          double area=(t+b)*h/2;

          return area;

          }

          %>

          <%

          String top=request.getParameter("top");

          String bottom=request.getParameter("bottom");

          String height=request.getParameter("height");

          double t=Double.parseDouble(top);

          double b=Double.parseDouble(bottom);

          double h=Double.parseDouble(height);

          %>

          </br>上底為:<%=t%></br>

          下底為:<%=b%></br>

          高為:<%=h%></br>

          梯形的面積:<%=getArea(t,b,h)%>

          </body>

          </html>

          效果演示:

          源:量子位

          本文約2509字,建議閱讀4分鐘。

          本文介紹資深前端用HTML+CSS繪畫,全程不用PS、AI這種圖形化的圖片編輯器,單純敲一行行代碼純手工繪制。

          HTML不是編程語言,但這并不妨礙精通它的大佬玩出花來。

          普通的前端,用HTML+CSS制作網(wǎng)頁,元素簡單,工具豐富。

          大佬級前端,用HTML+CSS繪畫,全程不用PS、AI這種圖形化的圖片編輯器,單純敲一行行代碼純手工繪制。

          把代碼轉(zhuǎn)換之后,就變成了鮮嫩的水果:

          或者畫出洛可可風格的古典女性肖像:

          還有弗拉芒巴洛克肖像風格的人物畫像,充滿了中世紀的禁欲感:

          現(xiàn)代的也有,比如這位在粉色燈光下的著禮服的妹子:

          以及充滿者50年代氣息的復(fù)古風人物海報:

          曲線、光影、漸變,每個元素都相當復(fù)雜。

          而且,創(chuàng)作過程中不用SVG,只用Atom文本編輯器和Chrome開發(fā)者工具。

          也就是說,畫面上的每一條曲線和漸變、每一處高光和陰影、每一根頭發(fā)和睫毛、每一片蕾絲和褶皺,都是一行行代碼從頭敲出來的!

          如此精細程度和創(chuàng)造力,讓學美術(shù)的網(wǎng)友感嘆“學畫畫不如寫代碼”,讓學計算機的同學覺得“別人寫的這么藝術(shù),一定是我的教科書打開方式不對”。

          真·交叉學科大佬。

          這個項目也一度登上了GitHub Trending排行榜第二名:

          并且Issues里都是諸多用戶的膜拜:厲害!崇拜!太棒了!

          它們的作者,是灣區(qū)前端大神Diana Smith小姐姐,她目前是企業(yè)及軟件開發(fā)商Atlassian的一名資深Web開發(fā)。


          繪制過程

          Diana在專門討論CSS的網(wǎng)站CSS-Tricks寫下了詳細的教程。

          畫出這樣一個圖形分成幾步?

          如果不用CSS,一般都是直接嵌入這個特殊的圖形。

          如果用CSS,那么就從黑色矩形開始,然后在兩側(cè)加上上兩個

          與白色背景顏色匹配的邊框半徑元素。



          先畫出一個黑色矩形,然后兩邊用圓弧遮擋。有了基礎(chǔ)形狀后,下一步就是給它添上漸變的背景。但是如果用矩形方式填充,得到的效果就是這樣的:

          Diana的辦法是:在保留矩形的同時,加上兩個彎曲的div,把凹進去的部分也填充上。

          最后完整的代碼是這樣的:

          div{
            width: 500px;
            height: 350px;
            background: #000;
            position: relative;
          
            &::after, &::before{
              width: 20%;
              height: 100%;    
              position: absolute;
              top: 0;
              z-index:2;
              content: "";    
          
              background: #1e5799; 
          background: -moz-linear-gradient(top, #1e5799 0%, #7db9e8 100%); 
          background: -webkit-linear-gradient(top, #1e5799 0%,#7db9e8 100%);
          background: linear-gradient(to bottom, #1e5799 0%,#7db9e8 100%); 
          filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#1e5799', endColorstr='#7db9e8',GradientType=0 ); 
            }
          
            &::after{
              border-radius: 100% 0% 0% 100%;   
              right: 0;
            }
          
            &::before{
              border-radius: 0 100% 100% 0;   
              left: 0;
            }   
          }
          
          body{
            background: #1e5799; 
          background: -moz-linear-gradient(top, #1e5799 0%, #7db9e8 100%); 
          background: -webkit-linear-gradient(top, #1e5799 0%,#7db9e8 100%); 
          background: linear-gradient(to bottom, #1e5799 0%,#7db9e8 100%); 
          filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#1e5799', endColorstr='#7db9e8',GradientType=0 ); 
          }

          你也可以去這個完成查看CSS樣式的實際運行效果:

          https://codepen.io/jean-jordan/pen/KeKaBw

          剛剛我們畫的那幅畫像不像人的脖子?好的,我們再回到人像畫上,Diana繪制人物的脖子也是類似的過程。

          在上面這張圖里,我們看到了Diana如何逐步改形狀,最終得到了油畫中人物的脖子。

          但是僅僅會畫各種幾何形狀,是無法生成藝術(shù)品的,Diana總結(jié)了她在繪圖中的5個重要CSS屬性。

          1、邊界半徑(border-radius)

          邊界半徑是為了讓矩形的邊角過渡得更自然,對于大多數(shù)網(wǎng)頁開發(fā)者來說,只需一個參數(shù)border-radius,可以設(shè)定不同的半徑數(shù)值。

          border-radius: 15px 10px 40px 30px / 40px 10px 15px 30px;

          2、盒子陰影(box-shadow)

          對多個盒子陰影進行分層是增加深度的最佳方法之一。框陰影將粘附到html容器的邊緣,也會沿著邊界半徑定義的邊緣。

          box-shadow: 6px -11px 20px 1px red, -15px -15px 5px -10px blue, inset 5px 5px 35px 10px green;


          開發(fā)者可以指定模糊半徑,以及陰影是向內(nèi)延伸還是向外延伸。

          3、變形(transform)

          變形的主要方式有:旋轉(zhuǎn)(rotate)、縮放(scale)和傾斜(skew)

          transform: rotate(-45deg)
          transform: scale(0.7, 1.3)
          transform: skew(25deg, 30deg);

          此外還有透視,讓物體產(chǎn)生遠小近大的視覺效果,或者是僅僅為畫出一個梯形。

          transform: perspective(10px) rotateY(5deg);

          4、線性梯度(linear-gradient)和徑向梯度(radial-gradient)

          線性梯度用于定義一個方向上的漸變效果,徑向梯度用于定義圓和橢圓形的漸變效果

          background-image: linear-gradient(0deg, blue, transparent 60%),
          radial-gradient(circle at 70% 30%, purple, transparent 40%);

          5、層疊(overflow)

          層疊是一種將大量雜亂元素填充到一個整齊的包中的方法,可以創(chuàng)建一些有趣的形狀。在變形那部分的基礎(chǔ)上使用hidden參數(shù),可以把邊緣遮蓋起來。

          overflow: hidden;

          以上5種元素缺一不可,隨便少一種都會產(chǎn)生怪異的效果。

          從左至右分別是缺少邊界半徑、陰影、變形、梯度、層疊的效果(點擊查看大圖)

          不過即使這樣,也很有抽象藝術(shù)的美感,仿佛在看畢加索的作品。

          只適用于Chrome

          不過,由于這是一個純個人藝術(shù)創(chuàng)作,Diana小姐姐并不關(guān)心瀏覽器適配性。

          因此,這些代碼在Chrome里可以完美展現(xiàn),但如果用其他瀏覽器打開,可能就會出現(xiàn)不一樣的效果。

          比如,MAC上的Safari瀏覽器打開,妹子的眼睛就方了:

          肩膀上的高光,變成了一個大圈圈:

          胸前的禮服上,也被潑了一道墨:

          如果用早期的Chrome打開,會出現(xiàn)驚悚的頭身分離的效果:

          早期的Opera瀏覽器,打開之后臉方了:

          Windows 7上從IE 6到IE 11,顯示出來的都是這個鬼樣子:

          濃重的線條,甚至有點抽象藝術(shù)的感覺。

          同樣是早期IE,放到Mac上也一樣鬼畜,這是IE 5.1.7的效果:

          還有人試了試,在Windows 98系統(tǒng)的IE 7瀏覽器打開,會變成非常像素風的樣子:

          最恐怖的是三星手機上的夜間模式打開:

          連人種都變了啊!

          其他的幾張畫,換個瀏覽器打開也比較鬼畜。

          妹子你bra里的鋼圈出來了啊!

          拉夫領(lǐng)變得透明而有光澤,領(lǐng)口的蕾絲干脆斷掉了,仿佛是逃難時期的肖像畫。

          最后,如果你在iPhone上裝了Chrome,出來的也是Safari的效果,想看完整效果的話,請在安卓手機或者電腦的Chrome上打開。

          因此,有不少網(wǎng)友都覺得,這幾幅畫可以當成瀏覽器測試項目,一試就能知道內(nèi)核用的是誰家的。

          反向繪圖

          CSS太難,學不會?不要緊,雖然我們不能把代碼變成圖片,但是可以把圖片變成代碼啊。

          沒錯,就是ASCII藝術(shù),早在DOS時期,就有人用命令行界面來顯示圖片。直到今天已成為一種流行的互聯(lián)網(wǎng)文化。

          用單色字符來畫出世界名畫已經(jīng)不算新鮮事。最近又有個碼農(nóng)開發(fā)了一個新的項目Primg,讓任何一幅畫都可以用質(zhì)數(shù)來表示。

          比如蒙拉麗莎,就可以用一個3萬位的質(zhì)數(shù)二進制方式繪制出來。

          傳送門:

          作者的GitHub:
          https://github.com/cyanharlow

          作者博客主頁:
          https://diana-adrianne.com/

          教程:
          https://css-tricks.com/solving-lifes-problems-with-css/

          用質(zhì)數(shù)生成任意ASCII藝術(shù):
          https://github.com/geonnave/primg

          —完—

          關(guān)注清華-青島數(shù)據(jù)科學研究院官方微信公眾平臺“ THU數(shù)據(jù)派 ”及姊妹號“ 數(shù)據(jù)派THU ”獲取更多講座福利及優(yōu)質(zhì)內(nèi)容。

          多小伙伴在做開發(fā)的時候,遇到一些要畫很多形狀的時候,就很糾結(jié)了,知道怎么用CSS去布局,就是不知道怎么畫圖案。

          其實使用CSS可以繪制出很多形狀,比如三角形,梯形,圓形,橢圓形等等,并不是只能畫矩形。

          今天的教程,就來教大家怎么去用CSS繪制這些圖形吧。

          為了方便大家去理解,今天分成基本形狀和組合形狀來一起講解吧,基本形狀是非常好理解的,再利用這些基本形狀進行組合,就可以實現(xiàn)稍微復(fù)雜的組合形狀了。

          基本形狀

          三角形

          梯形

          圓形

          橢圓

          球體

          半圓

          菱形

          組合形狀

          心形

          心形是由兩個圓形和一個矩形進行組合得到的。

          扇形

          扇形是由一個圓形和一個矩形進行組合得到的,用矩形遮住圓形的一部分就形成了扇形。

          五邊形

          五邊形是由一個三角形和一個梯形進行組合得到的。

          六邊形

          六邊形是由兩個三角形和一個矩形進行組合得到的。

          長方體

          長方體是由六個矩形進行組合得到的。

          圓柱體

          圓柱體是由一個橢圓和一個圓角矩形進行組合得到的。

          棱錐

          棱錐是由四個三角形和一個矩形進行組合得到的。

          最后

          今天講的內(nèi)容里,有些可能大家會覺得有些比較難實現(xiàn),其實你也可以使用 clip-path 這一個屬性,繪制各種形狀。

          當然,CSS能繪制的東西,遠不止這些。還有許多東西今天一下子講不完,今天講的都是比較基礎(chǔ)的一些,對這個感興趣的小伙伴可以后面自己去探索一下。


          主站蜘蛛池模板: 免费看AV毛片一区二区三区| 在线视频一区二区三区三区不卡 | 美女视频一区二区| 在线观看精品视频一区二区三区| 国产免费私拍一区二区三区| 精品久久一区二区| 亚洲美女视频一区二区三区| 亚洲Aⅴ无码一区二区二三区软件| 国产亚洲一区二区在线观看| 国产成人一区二区在线不卡| 国产在线精品一区二区三区不卡| 亚洲色精品aⅴ一区区三区| 国产一区二区三区不卡在线观看 | 日韩精品人妻一区二区中文八零| 亚洲Av无码国产一区二区| 一区二区不卡久久精品| 精品国产一区二区三区无码| 国产一区二区三区在线观看免费 | 精品久久国产一区二区三区香蕉| 无码精品视频一区二区三区| 久久久国产一区二区三区| 国产自产对白一区| 无码欧精品亚洲日韩一区| 国产成人av一区二区三区在线观看| 波多野结衣一区二区免费视频| 中文字幕乱码一区久久麻豆樱花| 亚洲国模精品一区| 精品中文字幕一区二区三区四区| 久久久无码一区二区三区| 日本精品高清一区二区2021| 在线观看视频一区二区| 78成人精品电影在线播放日韩精品电影一区亚洲 | 一区五十路在线中出| 日韩中文字幕精品免费一区| 中文字幕精品一区二区三区视频| 无码午夜人妻一区二区不卡视频 | 日本高清成本人视频一区| 国模精品一区二区三区视频| 亚洲综合在线成人一区| 精品国产亚洲一区二区三区| 国产一区二区三区樱花动漫|