[Processing学习]ControlP5-02-knob

[Processing学习]ControlP5-02-knob

在这里插入图片描述

import controlP5.*;


ControlP5 cp5;

int myColorBackground = color(0,0,0);   //背景颜色
int knobValue = 100;

Knob myKnobA;
Knob myKnobB;

void setup() {
  size(700,400);
  smooth();
  noStroke();
  
  cp5 = new ControlP5(this);
  
  myKnobA = cp5.addKnob("knob")   				 //名字
               .setRange(0,255)    				 //控制条的数值范围在0-255之间
               .setValue(50)
               .setPosition(100,70)
               .setRadius(50)
               .setDragDirection(Knob.VERTICAL)  //其进度条改变根据mouseY改变
               ;
                     
  myKnobB = cp5.addKnob("knobValue")
               .setRange(0,255)
               .setValue(220)    				 //预制的数值为220
               .setPosition(100,210)
               .setRadius(50)
               .setNumberOfTickMarks(10) 		 //有十个标度,不写是默认值
               .setTickMarkLength(4)   		    //刻度线长度
               .snapToTickMarks(true)     		//其进度条只能取刻度值
               .setColorForeground(color(255))  //未激活状态时的颜色
               .setColorBackground(color(0, 160, 100))  //背景大圆的颜色
               .setColorActive(color(255,255,0))  		//激活时的颜色
               .setDragDirection(Knob.HORIZONTAL)  		//其进度条改变根据mouseX改变
               ;
}

void draw() {
  background(myColorBackground);    //上半部分由knob的值决定
  fill(knobValue); 				    //下半部分由knobValue的值决定,这个值就是myKnobB的knobValue的theValue值
  rect(0,height/2,width,height/2);  //背景设置
  fill(0,100);
  rect(80,40,140,320);  			//控制台设置
}


void knob(int theValue) {
  myColorBackground = color(theValue);  //背景颜色根据knob的theValue值改变
  println("a knob event. setting background to "+theValue);
}


void keyPressed() {
  switch(key) {
    case('1'):myKnobA.setValue(180);break;
    case('2'):myKnobB.setConstrained(false).hideTickMarks().snapToTickMarks(false);
    		  break;  				//不再约束数值范围 隐藏刻度 不再只能取刻度值
    case('3'):myKnobA.shuffle();    //shuffle:洗牌,即随机取值
    		  myKnobB.shuffle();break;
  }
  
}`

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Annaisavailable

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值