• 關于KTRPOLY-NORM160彈性墊原裝 的信息

    本文目錄一覽:

    matlab利用MATLAB嵌套函數表示3D作圖

    function RandDisplayJiong

    axis off;

    set(gcf,'menubar','none','toolbar','none');

    for k=1:50

    h=text(rand,rand,...

    ['\fontsize{',num2str(unifrnd(20,50)),'}\fontname{隸書}囧'],...

    'color',rand(1,3),'Rotation',360*rand);

    pause(0.2);

    end

    function T=cat_in_holl(n)

    T=zeros(1,n);

    for k=1:n

    c=unidrnd(3,1);

    while c~=1

    if c==2

    T(k)=T(k)+4;

    else

    T(k)=T(k)+6;

    end

    c=unidrnd(3,1);

    end

    T(k)=T(k)+2;

    end

    》z=cat_in_holl(10000);

    function example2_3_6slow

    A=unidrnd(100,100,7);

    B=zeros(100,3);

    tic;

    for m=1:100

    a=A(m,:);

    b=[4,6,8];

    for ii=1:3

    dd=a(a==b(ii));

    if isempty(dd)==0

    b(ii)=0;

    end

    end

    B(m,:)=b;

    end

    toc

    end

    function example2_3_6fast2

    clear

    A=unidrnd(100,1000000,7);

    B=repmat([4,6,8],1000000,1);

    tic;

    C=[any(A==4,2) any(A==6,2) any(A==8,2)];

    B(C)=0;B

    toc

    function triangle_table

    fig = figure('defaultuicontrolunits','normalized','name','triangle_table',...

    'numbertitle','off','menubar','none');

    ah = axes('Pos',[.1 .2 .75 .75],'Visible','off');

    slider_h = uicontrol('style','slider','units','normalized','pos',...

    [0.1,0.05,0.75,0.05],'sliderstep',[1/6,0.05],'callback',@change_color);

    hold on

    for k = 0:6

    plot(0:6-k,(6-k)*ones(1,(7-k)),'k');

    plot(k*ones(1,(7-k)),k:6,'k');

    end

    plot([0,6],[0,6],'k');

    hold off;

    for x = 1:5

    for y = 1:x

    text(y-0.5,x+0.5,num2str(x),'color','k','tag','數字');

    end

    end

    for k = 0:5

    text(k+0.1,k+0.5,[num2str(k),'.5'],'tag','數字');

    end

    function change_color(hObject,eventdata)

    v = round(6*get(slider_h,'value'));

    num_h = findobj('tag','數字');

    num_pos = get(num_h,'pos');

    red_num_logic = cellfun(@(x) (x(1)=vx(2)=v),num_pos);

    set(num_h(red_num_logic),'color','r');

    set(num_h(~red_num_logic),'color','k');

    end

    end

    function [m,n,TT]=plot3dnmT(N,L)

    C=zeros(N,1);

    m=linspace(0,2,L);

    [m,n]=meshgrid(m,m);

    TT=zeros(size(n));

    for ii=1:L

    for jj=1:L

    TT(ii,jj)=calcT(m(ii,jj),n(ii,jj));

    end

    end

    function Tmn=calcT(mm,nn)

    for N1=1;N

    C(N1)=(mm^N1/gamma(N1+1))*sum(nn.^(0:N1-1)./gamma(1:N1));

    Tmn=1.0-exp(-mm-nn)*sum(C);

    end

    end

    mesh(n,m,TT);

    end

    》[m,n,TT]=plot3dnmT(30,30);

    function [mx,minf]=randwalk(f,x,lamda,epsilon,N)

    f1=f(x(1),x(2));

    while(lamda=epsilon)

    k=1;

    while(k=N)

    u=unifrnd(-1,1,1,2);

    x1=x+lamda*(u/norm(u));

    f11=f(x1(1),x1(2));

    if f11f1

    f1=f11;

    x=x1;

    k=1;

    else

    k+k+1;

    end

    end

    lamda=lamda/2;

    end

    mx=x1;

    minf=f1;

    f=@(x)-sin(sqrt((x(1)-50)^2+(x(2)-50)^2)+exp(1))/(sqrt((x(1)-50)^2+(x(20)-50)^2)+exp(1))-1;

    f2=@(x,y)-sin(sqrt((x-50).^2+(y-50).^2)+exp(1))./(sqrt((x-50).^2+(y-50).^2)+exp(1))-1;

    [x,fval]=fminsearch(f,[49,49],optimset('TolX',1e-8))

    function [mx,minf]=randwalknew(f,x,lamda,epsilon,N,n)

    F=zeros(n,1);

    X=zeros(n,2);

    f1=f(x(1),x(2));

    while(lamda=epsilon)

    k=1;

    while(k=N)

    u=unifrnd(-1,1,n,2);

    for ii=1:n

    X(ii,:)=x+lamda*(u(ii,:)/norm(u(ii,:)));

    F(ii)=f(X(ii,1),X(ii,2));

    end

    [f11,kk]=min(F);

    if f11f1

    f1=f11;

    x=X(kk,:);

    k=1;

    else

    k=k+1;

    end

    end

    lamda=lamda/2;

    end

    mx=X(kk,:);

    minf=f1;

    》f2=@(x,y)-sin(sqrt((x-50).^2+(y-50).^2)+exp(1))./(sqrt((x-50).^2+(y-50).^2)+exp(1))-1;

    》 [mx,minf]=randwalknew(f2,[0,0],10,0.00001,1000,10)

    function DuckLakeSegmentation

    [filename,pathname,flag]=uigetfile('*.jpg','請導入圖像文件');

    Duck=imread([pathname,filename]);

    LakeTrainData=[52 74 87;76 117 150;19 48 62;35 64 82;46 58 36;...

    50 57 23;110 127 135;156 173 189;246 242 232;...

    166 174 151];

    DuckTrainData=[211 192 107;202 193 164;32 25 0;213 201 151;115 75 16;...

    101 70 0;169 131 22;150 133 87];

    group=[zeros(size(LakeTrainData,1),1);ones(size(DuckTrainData,1),1)];

    LakeDuckSVM=svmtrain([LakeTrainData;DuckTrainData],group,...

    'Kernel_Function','polynomial','Polyorder',2);

    [m,n,k]=size(Duck);

    Duck1=double(reshape(Duck,m*n,k));

    IndDuck=svmclassify(LakeDuckSVM,Duck1);

    IndLake=~IndDuck;

    result=reshape([IndLake,IndLake,IndLake],[m,n,k]);

    Duck2=Duck;

    Duck2(result)=0;

    figure

    imshow(Duck2)

    function example12_2_1

    TimerA=timer('timerfcn',@TimerFun,'StartDelay',unidrnd(5000,1)/1000,...

    'executionmode','fixedrate');

    set(TimerA,'userdata',0);

    num=5;

    start(TimerA)

    function TimerFun(obj,event)

    set(TimerA,'userdata',get(TimerA,'userdata')+1);

    disp(['間隔時間為',num2str(get(TimerA,'startDelay')),'S!']);

    disp('Hello World!');

    stop(TimerA);

    set(TimerA,'StartDelay',unidrnd(5000,1)/1000);

    start(TimerA);

    while get(TimerA,'userdata')==num

    stop(TimerA)

    return;

    end

    end

    end

    MMsegmentation教程 6: 自定義運行設定

    我們已經支持 PyTorch 自帶的所有優化器,唯一需要修改的地方是在配置文件里的 optimizer 域里面。

    例如,如果您想使用 ADAM (注意如下操作可能會讓模型表現下降),可以使用如下修改:

    為了修改模型的學習率,使用者僅需要修改配置文件里 optimizer 的 lr 即可。

    使用者可以參照 PyTorch 的 API 文檔

    直接設置參數。

    一個自定義的優化器可以按照如下去定義:

    假如您想增加一個叫做 MyOptimizer 的優化器,它的參數分別有 a , b , 和 c 。

    您需要創建一個叫 mmseg/core/optimizer 的新文件夾。

    然后再在文件,即 mmseg/core/optimizer/my_optimizer.py 里面去實現這個新優化器:

    為了讓上述定義的模塊被框架發現,首先這個模塊應該被導入到主命名空間 (main namespace) 里。

    有兩種方式可以實現它。

    mmseg.core.optimizer.my_optimizer 模塊將會在程序運行的開始被導入,并且 MyOptimizer 類將會自動注冊。

    需要注意只有包含 MyOptimizer 類的包 (package) 應當被導入。

    而 mmseg.core.optimizer.my_optimizer.MyOptimizer 不能 被直接導入。

    事實上,使用者完全可以用另一個按這樣導入方法的文件夾結構,只要模塊的根路徑已經被添加到 PYTHONPATH 里面。

    之后您可以在配置文件的 optimizer 域里面使用 MyOptimizer

    在配置文件里,優化器被定義在 optimizer 域里,如下所示:

    為了使用您自己的優化器,這個域可以被改成:

    有些模型可能需要在優化器里有一些特別參數的設置,例如 批歸一化層 (BatchNorm layers) 的 權重衰減 (weight decay)。

    使用者可以通過自定義優化器的構造器去微調這些細粒度參數。

    默認的優化器構造器的實現可以參照 這里 ,它也可以被用作新的優化器構造器的模板。

    優化器沒有實現的一些技巧應該通過優化器構造器 (optimizer constructor) 或者鉤子 (hook) 去實現,如設置基于參數的學習率 (parameter-wise learning rates)。我們列出一些常見的設置,它們可以穩定或加速模型的訓練。

    如果您有更多的設置,歡迎在 PR 和 issue 里面提交。

    我們根據默認的訓練迭代步數 40k/80k 來設置學習率,這在 MMCV 里叫做 PolyLrUpdaterHook 。

    我們也支持許多其他的學習率計劃表: 這里 ,例如 CosineAnnealing 和 Poly 計劃表。下面是一些例子:

    工作流是一個專門定義運行順序和輪數 (running order and epochs) 的列表 (phase, epochs)。

    默認情況下它設置成:

    意思是訓練是跑 1 個 epoch。有時候使用者可能想檢查模型在驗證集上的一些指標(如 損失 loss,精確性 accuracy),我們可以這樣設置工作流:

    于是 1 個 epoch 訓練,1 個 epoch 驗證將交替運行。

    注意 :

    如果鉤子已經在 MMCV 里被實現,如下所示,您可以直接修改配置文件來使用鉤子:

    以下的常用的鉤子沒有被 custom_hooks 注冊:

    在這些鉤子里,只有 logger hook 有 VERY_LOW 優先級,其他的優先級都是 NORMAL 。

    上述提及的教程已經包括了如何修改 optimizer_config , momentum_config 和 lr_config 。

    這里我們展示我們如何處理 log_config , checkpoint_config 和 evaluation 。

    MMCV runner 將使用 checkpoint_config 去初始化 CheckpointHook .

    使用者可以設置 max_keep_ckpts 來僅保存一小部分檢查點或者通過 save_optimizer 來決定是否保存優化器的狀態字典 (state dict of optimizer)。 更多使用參數的細節請參考 這里 。

    log_config 包裹了許多日志鉤 (logger hooks) 而且能去設置間隔 (intervals)。現在 MMCV 支持 WandbLoggerHook , MlflowLoggerHook 和 TensorboardLoggerHook 。

    詳細的使用請參照 文檔 。

    evaluation 的配置文件將被用來初始化 EvalHook 。

    除了 interval 鍵,其他的像 metric 這樣的參數將被傳遞給 dataset.evaluate() 。

    maple求解微積分

    要查詢 Maple 庫函數和命令的意義和用法,只需在 Maple 界面命令行中輸入:

    ?命令名稱

    ?程序包名稱

    要調用程序包,只需在命令行中輸入:

    with(程序包名稱)

    例如:

    ?int? ? ?????????????????查詢用關于積分命令 int 的幫助信息

    ?Calculus????????????查詢關于微積分程序包的幫助信息

    with(Calculus1)????調用微積分程序包?Calculus1 的所有命令

    附:Maple 18 中的標準庫函數和頂層命令,共 599 個

    !

    about

    abs

    add

    addcoords

    additionally

    addproperty

    addressof

    AFactor

    AFactors

    AIrreduc

    AiryAi

    AiryAiZeros

    AiryBi

    AiryBiZeros

    algsubs

    alias

    allvalues

    anames

    andmap

    AngerJ

    apply

    applyop

    applyrule

    arccos

    arccosh

    arccot

    arccoth

    arccsc

    arccsch

    arcsec

    arcsech

    arcsin

    arcsinh

    arctan

    arctanh

    ArrayDims

    ArrayElems

    ArrayIndFns

    ArrayNumDims

    assemble

    assign

    assume

    assuming

    asympt

    attributes

    BellB

    Berlekamp

    bernoulli

    bernstein

    BernsteinBasis

    BesselI

    BesselJ

    BesselJZeros

    BesselK

    BesselY

    BesselYZeros

    Beta

    binomial

    branches

    Cache

    cat

    ceil

    changecoords

    charfcn

    Charpoly

    ChebyshevT

    ChebyshevU

    CheckArgs

    Chi

    chrem

    Ci

    close

    coeff

    coeffs

    coeftayl

    collect

    colondash

    combine

    comparray

    compiletable

    CompleteBellB

    Complex

    ComplexRange

    compoly

    CompSeq

    Content

    content

    convergs

    copy

    CopySign

    cos

    cosh

    cot

    coth

    coulditbe

    CoulombF

    csc

    csch

    currentdir

    CylinderD

    CylinderU

    CylinderV

    D

    Default0

    DefaultOverflow

    DefaultUnderflow

    define

    define_external

    definemore

    degree

    denom

    depends

    DESol

    Det

    diff

    Diff

    Digits

    dilog

    dinterp

    Dirac

    disassemble

    discont

    discrim

    dismantle

    DistDeg

    Divide

    divide

    doublefactorial

    dsolve

    Ei

    eliminate

    ellipsoid

    EllipticCE

    EllipticCK

    EllipticCPi

    EllipticE

    EllipticF

    EllipticK

    EllipticPi

    entries

    EqualEntries

    Equate

    erf

    erfc

    erfi

    euler

    eulermac

    Eval

    eval

    evala

    evalapply

    evalb

    evalc

    evalf

    evalhf

    evalindets

    evalr

    evalrC

    exists

    exp

    expand

    Expand

    expandoff

    expandon

    Explore

    ExportMatrix

    exports

    ExportVector

    extrema

    factor

    Factor

    factorial

    factors

    Factors

    fclose

    fdiff

    fdiscont

    feof

    fflush

    fixdiv

    float

    floor

    fnormal

    fold

    fopen

    forall

    forget

    fprintf

    frac

    fracdiff

    Fraction

    freeze

    frem

    fremove

    FresnelC

    Fresnelf

    Fresnelg

    FresnelS

    Frobenius

    FromInert

    frontend

    fscanf

    fsolve

    FunctionAdvisor

    galois

    GAMMA

    Gausselim

    Gaussjord

    gcd

    Gcd

    gcdex

    Gcdex

    GegenbauerC

    genpoly

    getassumptions

    getenv

    GF

    grelgroup

    HankelH1

    HankelH2

    has

    hasassumptions

    hasfun

    hasoption

    hastype

    Heaviside

    Hermite

    HermiteH

    hermitian

    Hessenberg

    HeunB

    HeunBPrime

    HeunC

    HeunCPrime

    HeunD

    HeunDPrime

    HeunG

    HeunGPrime

    HeunT

    HeunTPrime

    hfarray

    HFloat

    history

    hypergeom

    icontent

    identify

    identity

    ifactor

    ifactors

    igcd

    igcdex

    ilcm

    ilog10

    ilog2

    ilog[b]

    Im

    implicitdiff

    ImportMatrix

    ImportVector

    in

    IncompleteBellB

    Indep

    indets

    indices

    initialcondition

    initialconstants

    initialfunctions

    insertpattern

    Int

    int

    intat

    Intat

    Interp

    interp

    intsolve

    Inverse

    InverseJacobiAM

    InverseJacobiCD

    InverseJacobiCN

    InverseJacobiCS

    InverseJacobiDC

    InverseJacobiDN

    InverseJacobiDS

    InverseJacobiNC

    InverseJacobiND

    InverseJacobiNS

    InverseJacobiSC

    InverseJacobiSD

    InverseJacobiSN

    invfunc

    invztrans

    iperfpow

    iquo

    iratrecon

    irem

    iroot

    irreduc

    Irreduc

    is

    iscont

    isdifferentiable

    IsMatrixShape

    isolate

    isolve

    ispoly

    isprime

    isqrfree

    isqrt

    Issimilar

    issqr

    IsVectorShape

    ithprime

    JacobiAM

    JacobiCD

    JacobiCN

    JacobiCS

    JacobiDC

    JacobiDN

    JacobiDS

    JacobiNC

    JacobiND

    JacobiNS

    JacobiP

    JacobiSC

    JacobiSD

    JacobiSN

    JacobiTheta1

    JacobiTheta2

    JacobiTheta3

    JacobiTheta4

    KelvinBei

    KelvinBer

    KelvinHei

    KelvinHer

    KelvinKei

    KelvinKer

    KummerM

    KummerU

    LagrangeBasis

    LaguerreL

    Lcm

    lcm

    lcoeff

    ldegree

    leadterm

    LegendreP

    LegendreQ

    length

    LerchPhi

    lhs

    limit

    Limit

    Linsolve

    ln

    lnGAMMA

    log

    log10

    LommelS1

    LommelS2

    lowerbound

    lprint

    map

    map2

    Maple_floats

    maptype

    match

    MathieuA

    MathieuB

    MathieuC

    MathieuCE

    MathieuCEPrime

    MathieuCPrime

    MathieuExponent

    MathieuFloquet

    MathieuFloquetPrime

    MathieuS

    MathieuSE

    MathieuSEPrime

    MathieuSPrime

    Matrix

    MatrixOptions

    max

    maximize

    maxnorm

    MeijerG

    member

    membertype

    min

    minimize

    mod

    modp

    modp1

    modp2

    modpol

    mods

    module

    MOLS

    msolve

    mtaylor

    mul

    NewtonBasis

    NextAfter

    Nextpoly

    Nextprime

    nextprime

    nops

    norm

    Normal

    normal

    nprintf

    Nullspace

    numboccur

    numelems

    numer

    NumericClass

    odetest

    op

    order

    OrderBasis

    OrderedNE

    ormap

    packages

    patmatch

    Perm

    permgroup

    plot

    plot3d

    plotsetup

    pochhammer

    PochhammerBasis

    pointto

    poisson

    polylog

    Power

    powmod

    Powmod

    prem

    Prem

    Prevpoly

    Prevprime

    prevprime

    Primfield

    Primitive

    Primpart

    primpart

    print

    print_preprocess

    printf

    proc

    product

    Product

    proot

    property

    protect

    Psi

    psqrt

    quo

    Quo

    radfield

    radnormal

    rand

    randomize

    randpoly

    Randpoly

    Randprime

    rationalize

    ratrecon

    Ratrecon

    Re

    readbytes

    readline

    readstat

    RealRange

    realroot

    redefine

    Reduce

    rem

    Rem

    remove

    residue

    RESol

    resultant

    Resultant

    rhs

    Rif

    root

    rootbound

    roots

    Roots

    round

    Rounding

    rsolve

    rtable_dims

    rtable_elems

    rtable_num_dims

    rtable_num_elems

    scalar

    Scale10

    Scale2

    scanf

    searchtext

    SearchText

    sec

    sech

    select

    selectfun

    selectremove

    seq

    series

    setattribute

    SFloatExponent

    SFloatMantissa

    shake

    Shi

    showtime

    Si

    sign

    signum

    Simplify

    simplify

    sin

    singular

    sinh

    sinterp

    smartplot

    smartplot3d

    Smith

    sort

    sparse

    SphericalY

    sprem

    SPrem

    sprintf

    sqrfree

    Sqrfree

    sqrt

    sscanf

    Ssi

    ssystem

    Stirling1

    Stirling2

    StruveH

    StruveL

    sturm

    sturmseq

    Subfields

    subs

    subsindets

    subsop

    substring

    subtype

    sum

    Sum

    surd

    symmdiff

    table

    tablelook

    tan

    tanh

    taylor

    tcoeff

    testeq

    testfloat

    thaw

    ToInert

    TopologicalSort

    Trace

    traperror

    trigsubs

    trunc

    type

    typematch

    unames

    unapply

    unassign

    undefine

    Unordered

    unprotect

    unwindK

    unwith

    upperbound

    value

    Vandermonde

    Vector

    verify

    WARNING

    WeberE

    WeierstrassP

    WeierstrassPPrime

    WeierstrassSigma

    WeierstrassZeta

    whattype

    WhittakerM

    WhittakerW

    with

    Wrightomega

    zip

    ztrans

    3dmax編輯網格怎么添加可編輯的頂點和線?

    你可以先去【繪學霸】網站找“3d建模”板塊的【免費】視頻教程-【點擊進入】完整入門到精通視頻教程列表: ;tagid=307zdhhr-11y04r-536472121

    想要系統的學習可以考慮報一個網絡直播課,推薦CGWANG的網絡課。老師講得細,上完還可以回看,還有同類型錄播課可以免費學(贈送終身VIP)。

    自制能力相對較弱的話,建議還是去好點的培訓機構,實力和規模在國內排名前幾的大機構,推薦行業龍頭:王氏教育。

    王氏教育全國直營校區面授課程試聽【復制后面鏈接在瀏覽器也可打開】: ;zdhhr-11y04r-536472121

    在“3d建模”領域的培訓機構里,【王氏教育】是國內的老大,且沒有加盟分校,都是總部直營的連鎖校區。跟很多其它同類型大機構不一樣的是:王氏教育每個校區都是實體面授,老師是手把手教,而且有專門的班主任從早盯到晚,爆肝式的學習模式,提升會很快,特別適合基礎差的學生。

    大家可以先把【繪學霸】APP下載到自己手機,方便碎片時間學習——繪學霸APP下載:

    如何查找自己想要的GDI函數.

    圖形和圖像函數包含在graphics.h里面

    (一) 像素函數

    56. putpiel() 畫像素點函數

    57. getpixel()返回像素色函數

    (二) 直線和線型函數

    58. line() 畫線函數

    59. lineto() 畫線函數

    60. linerel() 相對畫線函數

    61. setlinestyle() 設置線型函數

    62. getlinesettings() 獲取線型設置函數

    63. setwritemode() 設置畫線模式函數

    (三)、多邊形函數

    64. rectangle() 畫矩形函數

    65. bar() 畫條函數

    66. bar3d() 畫條塊函數

    67. drawpoly() 畫多邊形函數

    (四)、 圓、弧和曲線函數

    68. getaspectratio()獲取縱橫比函數

    69. circle()畫圓函數

    70. arc() 畫圓弧函數

    71. ellipse()畫橢圓弧函數

    72. fillellipse() 畫橢圓區函數

    73. pieslice() 畫扇區函數

    74. sector() 畫橢圓扇區函數

    75. getarccoords()獲取圓弧坐標函數

    (五)、 填充函數

    76. setfillstyle() 設置填充圖樣和顏色函數

    77. setfillpattern() 設置用戶圖樣函數

    78. floodfill() 填充閉域函數

    79. fillpoly() 填充多邊形函數

    80. getfillsettings() 獲取填充設置函數

    81. getfillpattern() 獲取用戶圖樣設置函數

    (六)、圖像函數

    82. imagesize() 圖像存儲大小函數

    83. getimage() 保存圖像函數

    84. putimage() 輸出圖像函數

    四、圖形和圖像函數

    對許多圖形應用程序,直線和曲線是非常有用的。但對有些圖形只能靠操作單個像素才能畫出。當然如果沒有畫像素的功能,就無法操作直線和曲線的函數。而且通過大規模使用像素功能,整個圖形就可以保存、寫、擦除和與屏幕上的原有圖形進行疊加。

    (一) 像素函數

    56. putpixel() 畫像素點函數

    功能: 函數putpixel() 在圖形模式下屏幕上畫一個像素點。

    用法: 函數調用方式為void putpixel(int x,int y,int color);

    說明: 參數x,y為像素點的坐標,color是該像素點的顏色,它可以是顏色符號名,也可以是整型色彩值。

    此函數相應的頭文件是graphics.h

    返回值: 無

    例: 在屏幕上(6,8)處畫一個紅色像素點:

    putpixel(6,8,RED);

    57. getpixel()返回像素色函數

    功能: 函數getpixel()返回像素點顏色值。

    用法: 該函數調用方式為int getpixel(int x,int y);

    說明: 參數x,y為像素點坐標。

    函數的返回值可以不反映實際彩色值,這取決于調色板的設置情況(參見setpalette()函數)。

    這個函數相應的頭文件為graphics.h

    返回值: 返回一個像素點色彩值。

    例: 把屏幕上(8,6)點的像素顏色值賦給變量color。

    color=getpixel(8,6);

    (二) 直線和線型函數

    有三個畫直線的函數,即line(),lineto(),linerel()。這些直線使用整型坐標,并相對于當前圖形視口,但不一定受視口限制,如果視口裁剪標志clip為真,那么直線將受到視口邊緣截斷;如果clip為假,即使終點坐標或新的當前位置在圖形視口或屏幕極限之外,直線截斷到屏幕極限。

    有兩種線寬及幾種線型可供選擇,也可以自己定義線圖樣。下面分別介紹直線和線型函數。

    58. line() 畫線函數

    功能: 函數line()使用當前繪圖色、線型及線寬,在給定的兩點間畫一直線。

    用法: 該函數調用方式為void line(int startx,int starty,int endx,int endy);

    說明: 參數startx,starty為起點坐標,endx,endy為終點坐標,函數調用前后,圖形狀態下屏幕光標(一般不可見)當前位置不改變。

    此函數相應的頭文件為graphics.h

    返回值: 無

    例: 見函數60.linerel()中的實例。

    59. lineto() 畫線函數

    功能: 函數lineto()使用當前繪圖色、線型及線寬,從當前位置畫一直線到指定位置。

    用法: 此函數調用方式為void lineto(int x,int y);

    說明: 參數x,y為指定點的坐標,函數調用后,當前位置改變到指定點(x,y)。

    該函數對應的頭文件為graphics.h

    返回值: 無

    例: 見函數60.linerel()中的實例。

    60.linerel() 相對畫線函數

    功能: 函數linerel() 使用當前繪圖色、線型及線寬,從當前位置開始,按指定的水平和垂直偏移距離畫一直線。

    用法: 這個函數調用方式為void linerel(int dx,int dy);

    說明: 參數dx,dy分別是水平偏移距離和垂直偏移距離。

    函數調用后,當前位置變為增加偏移距離后的位置,例如,原來的位置是(8,6),調用函數linerel(10,18)后,當前位置為(18,24)。

    返回值:無

    例: 下面的程序為畫線函數調用實例:

    #i ncludegraphics.h

    void main()

    {

    int driver,mode;

    driver=DETECT;

    mode=0;

    initgraph(driver,mode,"");

    setcolor(15);

    line(66,66,88,88);

    lineto(100,100);

    linerel(36,64);

    getch();

    restorecrtmode();

    }

    61. setlinestyle() 設置線型函數

    功能: setlinestyle() 為畫線函數設置當前線型,包括線型、線圖樣和線寬。

    用法: setlinestyle() 函數調用方式為void setlinestyle(int stly,unsigned pattern,int width);

    說明: 參數style為線型取值,也可以用相應名稱表示,如表1-10中所示。

    參數pattern用于自定義線圖樣,它是16位(bit)字,只有當style=USERBIT_LINE(值為1)時,pattern的值才有意義,使用用戶自定義線圖樣,與圖樣中“1”位對應的像素顯示,因此,pattern=0xFFFF,則畫實線;pattern=0x9999,則畫每隔兩個像素交替顯示的虛線,如果要畫長虛線,那么pattern的值可為0xFF00和0xF00F,當style不為USERBIT_LINE值時,雖然pattern的值不起作用,但扔須為它提供一個值,一般取為0。

    參數wigth用來設定線寬,其取值見表1-11,表中給出了兩個值,即1和3,實際上,線寬取值為2也是可以接受的。

    若用非法參數調用setlinestyle()函數,那么graphresult()會返回錯誤代碼,并且當前線型繼續有效。

    Turbo C提供的線型與線寬定義在頭文件graphics.h中,表1-10和1-11分別列出了參數的取值與含義。

    表1-10 線型

    -----------------------------------------------------

    名 稱 取 值 含 義

    -----------------------------------------------------

    SOLID_LINE 0 實線

    DOTTED_LINE 1 點線

    CNTER_LINE 2 中心線

    DASHED_LINE 3 虛線

    USERBIT_LINE 4 用戶自定義線型

    -----------------------------------------------------

    表1-11 線寬

    -----------------------------------------------------------

    名 稱 取 值 說 明

    -----------------------------------------------------------

    NORM_WIDTH(常寬) 1 一個像素寬(缺省值)

    THICK_WIDTH(加寬) 3 三個像素寬

    -----------------------------------------------------------

    這個函數的頭文件是graphics.h

    返回值: 無

    例: 下面的程序顯示了BC中所提供的線型圖樣:

    #i ncludegraphics.h

    void main()

    {

    int driver,mode;

    driver=DETECT;

    mode=0;

    initgraph(driver,mode,"");

    for(i=0;i4;i++)

    {

    setlinestyle(i,0,1);

    line(i*50,200,i*50+60,200)

    }

    getch();

    restorecrtmode();

    }

    62. getlinesettings() 獲取線型設置函數

    功能: 函數getlinesettings() 用當前設置的線型、線圖樣和線寬填 寫linesettingstype型結構。

    用法: 函數調用方式為void getlinesettings(struct linesettingstype *info);

    說明: 此函數調用執行后,當前的線型、線圖樣和線寬值被裝入info指向的結構里,從而可從該結構中獲得線型設置。

    linesettingstype型結構定義如下:

    struct linesettingstype {

    int linestyle;

    unsigned upattern;

    int thickness;

    };

    其中linestyle用于存放線型,線型值為表1-10中的各值之一。

    upattern用為裝入用戶自定義線圖樣,這是16位字,每一位等于一個像素,如果哪個位被設置,那么該像素打開,否則關閉。

    thickness為線寬值存放的變量,可參見表1-11。

    getlinesettings()函數對應的頭文件為graphics.h

    返回值: 返回的線型設置存放在info指向的結構中。

    例: 把當前線型的設置寫入info結構:

    struct linesettingstype info;

    getlinesettings(info);

    63.setwritemode() 設置畫線模式函數

    功能: 函數setwritemode() 設置畫線模式

    用法: 函數調用方式為 void setwritemode()(int mode);

    說明: 參數mode只有兩個取值0和1,若mode為0,則新畫的線將復蓋屏幕上原有的圖形,此為缺省畫線輸出模式。如果mode為1,那么新畫的像素點與原有圖形的像素點先進行異或(XOR)運算,然后輸出到屏幕上,使用這種畫線輸出模式,第二次畫同一圖形時,將擦除該圖形。調用setwritemode()設置的畫線輸出模式只影響函數line(),lineto(),linerel(),recangle()和drawpoly()。

    setwritemode()函數對應的頭文件是graphics.h

    返回值: 無

    例: 設置畫線輸出模式為0:

    setwritemode(0);

    (三)、多邊形函數

    對多邊形,無疑可用畫直線函數來畫出它,但直接提供畫多邊形的函數會給用戶很大方便。最常見的多邊形有矩形、矩形塊(或稱條形)、多邊形和多邊形塊,我們還把長方形條塊也放到這里一起考慮,雖然它不是多邊形,但它的特例就是矩形(塊)。下面直接介紹畫多邊形的函數。

    64. rectangle() 畫矩形函數

    功能: 函數rectangle() 用當前繪圖色、線型及線寬,畫一個給定左上角與右下角的矩形(正方形或長方形)。

    用法: 此函數調用方式為void rectangle(int left,int top,int right,int bottom);

    說明: 參數left,top是左上角點坐標,right,bottom是右下角點坐標。如果有一個以上角點不在當前圖形視口內,且裁剪標志clip設置的是真(1),那么調用該函數后,只有在圖形視口內的矩形部分才被畫出。

    這個函數對應的頭文件為graphics.h

    返回值: 無

    例: 下面的程序畫一些矩形實例:

    #i ncludegraphics.h

    void main()

    {

    int driver,mode;

    driver=DETECT;

    mode=0;

    initgrpah(driver,mode,"");

    rectangle(80,80,220,200);

    rectangle(140,99,180,300);

    rectangle(6,6,88,88);

    rectangle(168,72,260,360);

    getch();

    restorecrtmode();

    }

    65. bar() 畫條函數

    功能: 函數bar()用當前填充圖樣和填充色(注意不是給圖色)畫出一個指定上左上角與右下角的實心長條形(長方塊或正方塊),但沒有四條邊線)。

    用法: bar()函數調用方式為void bar(int left,int top,int right,int bottom);

    說明: 參數left,topright,bottom分別為左上角坐標與右下角坐標,它們和調用函數rectangle()的情形相同,調用此函數前,可用setfillstyle()或setfillpattern()設置當前填充圖樣和填充色。

    注意此函數只畫沒有邊線的條形,如果要畫有邊線的的條形,可調用下面的函數bar3d()來畫,并將深度參數設為0,同時topflag參數要設置為真,否則該條形無頂邊線。

    這 應的頭文件為graphics.h

    返回值: 無

    例: 見函數bar3d()中的實例。

    66.bar3d() 畫條塊函數

    功能: 函數bar3d() 使用當前繪圖色、線型及線寬畫出三維長方形條塊,并用當前填充圖樣和填 充色填充該三維條塊的表面。

    用法: 此函數調用方式為void bar3d(int left,int top,int right,int bottom,int depth,int topflag);

    說明: 參數left,top,right,bottom分另為左上角與右下角坐標,這與bar()函數中的一樣。參數depth為條塊的深度,以像素為單位,通常按寬度的四分之一計算。深度方向通過屏顯縱橫比調節為約45度(即這時x/y比設置為1:1)。

    參數topflag相當于一個布爾參數,如果設置為1(真)那么條塊上放一頂面;若設置為0(假),則三維條形就沒有頂面,這樣可使多個三維條形疊加在一起。

    要使圖形更加美觀,可利用函數floodfill()或setfillpattern()來選擇填充圖樣和填充色(參見本小節(五)填充函數 )。

    bar3d()函數對應的頭文件為graphics.h

    返回值: 無

    例: 下面的程序畫一個條形和條塊:

    #i ncludegraphics.h

    void main()

    {

    int driver,mode;

    driver=DETECT;

    mode=0;

    initgraph(driver,mode,"");

    setfillstyle(SOLID-FILL,GREEN);

    bar(60,80,220,160);

    setfillstyle(SOLID-FILL,RED);

    bar3d(260,180,360,240,20,1);

    getch();

    restorecrtmode();

    }

    67. drawpoly() 畫多邊形函數

    功能: 函數drawpoly() 用當前繪圖色、線型及線寬,畫一個給定若干點所定義的多邊形。

    用法: 此函數調用方式為void drawpoly(int pnumber,int *points);

    說明: 參數pnumber為多邊形的頂點數;參數points指向整型數組,該數組中是多邊形所有頂點(x,y)坐標值,即一系列整數對,x坐標值在前。顯然整型數組的維數至少為頂點數的2倍,在定義了多邊形所有頂點的數組polypoints時,頂點數目可通過計算sizeof(polypoints)除以2倍的sizeof(int)得到,這里除以2倍的原因是每個頂點有兩個整數坐標值。另外有一點要注意,畫一個n個頂點的閉合圖形,頂點數必須等于n+1,并且最后一點(第n+1)點坐標必須等于第一點的坐標。

    drawpoly()函數對應的頭文件為grpahics.h

    返回值: 無

    例: 下面的程序畫一個封閉星形圖與一個不封閉星形圖:

    #i ncludegraphics.h

    void main()

    {

    int driver,mode;

    static int polypoints1[18]={100,100,110,120,100,130,120,125,140,140,130,120,

    140,110,120,115,100,100};

    static int polypoints2[18]={180,100,210,120,200,130,220,125,240,140,230,120,

    240,110,220,115,220,110};

    driver=DETECT;

    mode=0;

    initgraph(driver,mode,"");

    drawpoly(9,polypoints1);

    drawpoly(9,polypoints2);

    getch();

    restorecrtmode();

    }

    (四)、 圓、弧和曲線函數

    在一個屏幕上畫得很圓的圖形到另一個屏幕上可能被壓扁或拉長,這是因為每一種顯示卡與之相應的顯示模式都有一個縱橫比。縱橫比是指像素的水平方向大小與垂直方向大小的比值。如VGA顯示卡由于偈素基本上是正方形,所以縱橫比為1.000。

    為了保證幾何圖形基本按預計情況顯示在屏幕上,用屏顯的縱橫比來計算和糾正不同硬件及顯示卡產生的畸變。計算縱橫比所需要的水平方向和垂直方向的比例系數可調用函數getaspectratio()獲得。

    68. getaspectratio()獲取縱橫比函數

    功能: 函數getaspectratio()返回x方向和y方向的比例系數,用這兩個整型值可計算某一特定屏顯的縱橫比。

    用法: 此函數調用方式為void getaspectratio(int xasp,int yasp);

    說明: 參數xasp指向的變量存放返回的x方向比例系數;參數yasp指向的變量存放返回的y方向比例系數。通常y方向比例系數為10 000, x方向比例系數不大于10 000(這是因為大多數屏幕像素高比寬長)。

    注意縱橫比自動用作下面函數arc(),circle()和pieslice()中的標尺因子,使屏幕上圓或弧正常顯示。但用ellipse()函數畫橢圓必須調用本函數獲取縱橫比作為標尺因子,否則不予調整。縱橫比可用于其它幾何圖形,目的是校正和顯示圖形。

    getaspectratio()函數對應的頭文件為graphics.h

    返回值: 返回x與y方向比例系數分別存放在xasp和yasp所指向的變量中。

    例: 下面的程序顯示縱橫比:

    int xasp,yasp;

    float aspectratio;

    getaspectratio(xasp,yasp);

    aspectratio=xasp/yasp;

    printf("aspect ratio: %f",aspectratio);

    69. circle()畫圓函數

    功能: 函數circle()使用當前繪圖色并以實線畫一個完整的圓。

    用法:該函數調用方式為void circle(int x,int y,int radius);

    說明: 參數x,y為圓心坐標,radius為圓半徑,用像素個素表示。注意,調用circle()函數畫圓時不用當前線型。

    不同于ellipse()函數,只用單個半徑radius參數調用circle()函數,故屏顯縱橫比可以自動調節,以產生正確的顯示圖。

    此函數對應的頭文件為graphics.h

    返回值: 無

    例: 畫六個同心圓,圓心在(100,100)。

    #i ncludegraphics.h

    void main()

    {

    int driver,mode;

    driver=DETECT;

    mode=0;

    initgraph(driver,mode,"");

    circle(100,100,10);

    circle(100,100,20);

    circle(100,100,30);

    circle(100,100,40);

    circle(100,100,50);

    circle(100,100,60);

    getch();

    restorecrtmode();

    }

    70. arc() 畫圓弧函數

    功能: 函數arc()使用當前繪圖色并以實線畫一圓弧。

    用法: 函數調用方式為void arc(int x,int y,int startangle,int endangle,int radius);

    說明: 參數x,y為圓心坐標,startangle與endangle分別為起始角與終止角,radius為半徑。圓心坐標和半徑以像素個數給出,起始角和終止角以度為單位,0度位于右邊,90度位于頂部,180度位于左邊,底部是270度。同往常一樣,360度與0度重合。角度按逆時針方向增加,但并不要求終止角一定比起始角大。例如指定300度和90度分別為起始角和終止角,與指定300度和450度分別為起始角和終止角可畫出相同的弧。大于360度可作為參數,它將被化到0度 ̄360度范圍里。函數arc()能畫封閉圓,只要取起始角為0度,終止角為360度即可。此函數中,屏顯縱橫比可自動調節。

    arc()函數對應的頭文件為graphics.h

    返回值: 無

    例: 以(200,200)為圓心,100為半徑,從0度到120度畫圓弧:

    #i ncludegraphics.h

    void main()

    {

    int driver,mode;

    driver=DETECT;

    mode=0;

    initgraph(drivwer,mode,"");

    setcolor(WHITE);

    arc(200,200,0,120,100);

    getch();

    restorecrtmode();

    }

    飛哥與小佛:超時空之謎的劇情簡介

    《飛哥與小佛》(Phineas and Ferb)是Disney Channel原創劇集,是Disney Channel原創劇集中播出時間最長的劇集。于2007年8月17日開始在美國Disney Channel播出,2008年9月1日開始在美國Disney XD頻道播出。

    鏈接:

    ?pwd=fym2 提取碼:fym2

    該作品講述飛哥與小佛的故事。飛哥和他沒有血緣關系的弟弟小佛是充滿無限想像力和行動能力的最佳拍檔,隨著暑假的來臨,他們已經準備好要大展身手!

    KTR聯軸器生產高品質傳動部件和制動器

    服務熱線

    13166059228

    13166059228

    微信客服

    微信客服

  • 妈妈的朋友电影