Difference between revisions of "Team:NEU China B"

Line 24: Line 24:
 
</canvas>
 
</canvas>
 
<script>
 
<script>
var width = 800;
+
var width = 800;
var height = 400;
+
var height = 400;
  
var c = document.getElementById("base_page");
+
var c = document.getElementById("base_page");
  
$("#base_page").attr("width", c.parentElement.clientWidth);
+
$("#base_page").attr("width", c.parentElement.clientWidth);
  
var ctx = c.getContext("2d");
+
var ctx = c.getContext("2d");
that = ctx;
+
that = ctx;
var i = 0;
+
var i = 0;
var pi = Math.PI;
+
var pi = Math.PI;
var basex = c.width / 2;
+
var basex = c.width / 2;
var basey = c.height / 2;
+
var basey = c.height / 2;
width = c.width;
+
width = c.width;
height = c.height;
+
height = c.height;
var imgx;
+
var imgx;
var imgy;
+
var imgy;
  
var w1 = "https://static.igem.org/mediawiki/2018/a/a8/T--NEU_China_B--w1.png";
+
var w1 = "https://static.igem.org/mediawiki/2018/a/a8/T--NEU_China_B--w1.png";
var w2 = "https://static.igem.org/mediawiki/2018/f/f9/T--NEU_China_B--w2.png";
+
var w2 = "https://static.igem.org/mediawiki/2018/f/f9/T--NEU_China_B--w2.png";
var w3 = "https://static.igem.org/mediawiki/2018/2/27/T--NEU_China_B--w3.png";
+
var w3 = "https://static.igem.org/mediawiki/2018/2/27/T--NEU_China_B--w3.png";
var w4 = "https://static.igem.org/mediawiki/2018/9/96/T--NEU_China_B--w4.png";
+
var w4 = "https://static.igem.org/mediawiki/2018/9/96/T--NEU_China_B--w4.png";
var w5 = "https://static.igem.org/mediawiki/2018/7/7a/T--NEU_China_B--w5.png";
+
var w5 = "https://static.igem.org/mediawiki/2018/7/7a/T--NEU_China_B--w5.png";
var w6 = "https://static.igem.org/mediawiki/2018/6/66/T--NEU_China_B--w6.png";
+
var w6 = "https://static.igem.org/mediawiki/2018/6/66/T--NEU_China_B--w6.png";
  
var img1 = new Image();
+
var img1 = new Image();
var img2 = new Image();
+
var img2 = new Image();
var img3 = new Image();
+
var img3 = new Image();
var img4 = new Image();
+
var img4 = new Image();
var img5 = new Image();
+
var img5 = new Image();
var img6 = new Image();
+
var img6 = new Image();
img1.src = w1;
+
img1.src = w1;
var during = 40;
+
var during = 40;
var t1 = 0;
+
var t1 = 0;
var base_t1 = 0;
+
var base_t1 = 0;
var t2 = 0;
+
var t2 = 0;
var base_t2 = base_t1 + during;
+
var base_t2 = base_t1 + during;
var t3 = 0;
+
var t3 = 0;
var base_t3 = base_t2 + during;
+
var base_t3 = base_t2 + during;
var t4 = 0;
+
var t4 = 0;
var base_t4 = base_t3 + during;
+
var base_t4 = base_t3 + during;
var t5 = 0;
+
var t5 = 0;
var base_t5 = base_t4 + during;
+
var base_t5 = base_t4 + during;
var t6 = 0;
+
var t6 = 0;
var base_t6 = base_t5 + during;
+
var base_t6 = base_t5 + during;
  
var x_e = 300;
+
var x_e = 300;
var y_e = 150;
+
var y_e = 150;
  
var tipsWarpper = {};
+
var tipsWarpper = {};
  
  
function redraw() {
+
function redraw() {
ctx.clearRect(0, 0, width, height);
+
ctx.clearRect(0, 0, width, height);
  
var i = 0;
+
var i = 0;
ctx.beginPath();
+
ctx.beginPath();
var x = x_e * Math.cos(0 * 180 * 2) + basex;
+
var x = x_e * Math.cos(0 * 180 * 2) + basex;
var y = y_e * Math.sin(0 * 180 * 4) + basey;
+
var y = y_e * Math.sin(0 * 180 * 4) + basey;
ctx.moveTo(x, y);
+
ctx.moveTo(x, y);
for (i = 0; i < 0.05; i += 0.00001) {
+
for (i = 0; i < 0.05; i += 0.00001) {
var x = x_e * Math.cos(i * 180 * 2) + basex;
+
var x = x_e * Math.cos(i * 180 * 2) + basex;
var y = y_e * Math.sin(i * 180 * 4) + basey;
+
var y = y_e * Math.sin(i * 180 * 4) + basey;
ctx.lineTo(x, y);
+
ctx.lineTo(x, y);
}
+
}
ctx.strokeStyle = '#FAF0E6';
+
ctx.strokeStyle = '#FAF0E6';
ctx.lineWidth = 3;
+
ctx.lineWidth = 3;
ctx.stroke();
+
ctx.stroke();
ctx.closePath();
+
ctx.closePath();
  
}
+
}
  
function draw(x, y, r) {
+
function draw(x, y, r) {
ctx.beginPath();
+
ctx.beginPath();
ctx.arc(x, y, r, 0, Math.PI * 2, true);
+
ctx.arc(x, y, r, 0, Math.PI * 2, true);
ctx.fillStyle = "red";
+
ctx.fillStyle = "red";
ctx.fill();
+
ctx.fill();
ctx.closePath();
+
ctx.closePath();
}
+
}
function drawTips(x, y, w, h, msg) {
+
function drawTips(x, y, w, h, msg) {
// ctx.beginPath();
+
// ctx.beginPath();
// ctx.rect(x, y, w, h);
+
// ctx.rect(x, y, w, h);
// ctx.fillStyle = 'white';
+
// ctx.fillStyle = 'white';
// ctx.fill();
+
// ctx.fill();
// ctx.closePath();
+
// ctx.closePath();
ctx.beginPath();
+
ctx.beginPath();
ctx.font = 'italic 40pt Calibri';
+
ctx.font = 'italic 40pt Calibri';
ctx.fillStyle = 'yellow';
+
ctx.fillStyle = 'yellow';
ctx.fillText(msg, x, y);
+
ctx.fillText(msg, x, y);
ctx.fill();
+
ctx.fill();
ctx.closePath();
+
ctx.closePath();
}
+
}
  
function drawImg(imgWarpper, x, y) {
+
function drawImg(imgWarpper, x, y) {
var img = imgWarpper.img;
+
var img = imgWarpper.img;
var drawWidth = img.width / 4;
+
var drawWidth = img.width / 4;
var drawHeight = img.height / 4;
+
var drawHeight = img.height / 4;
var imx = x - drawWidth / 2;
+
var imx = x - drawWidth / 2;
var imy = y - drawHeight / 2
+
var imy = y - drawHeight / 2
imgWarpper.x = imx;
+
imgWarpper.x = imx;
imgWarpper.y = imy;
+
imgWarpper.y = imy;
ctx.drawImage(img, imx, imy, drawWidth, drawHeight);
+
ctx.drawImage(img, imx, imy, drawWidth, drawHeight);
}
+
}
  
var imgWarpper1 = {};
+
var imgWarpper1 = {};
var imgWarpper2 = {};
+
var imgWarpper2 = {};
var imgWarpper3 = {};
+
var imgWarpper3 = {};
var imgWarpper4 = {};
+
var imgWarpper4 = {};
var imgWarpper5 = {};
+
var imgWarpper5 = {};
var imgWarpper6 = {};
+
var imgWarpper6 = {};
  
imgWarpper1.img = img1;
+
imgWarpper1.img = img1;
imgWarpper2.img = img2;
+
imgWarpper2.img = img2;
imgWarpper3.img = img3;
+
imgWarpper3.img = img3;
imgWarpper4.img = img4;
+
imgWarpper4.img = img4;
imgWarpper5.img = img5;
+
imgWarpper5.img = img5;
imgWarpper6.img = img6;
+
imgWarpper6.img = img6;
  
img1.onload = function () {
+
img1.onload = function () {
img2.src = w2;
+
img2.src = w2;
img2.onload = function () {
+
img2.onload = function () {
img3.src = w3;
+
img3.src = w3;
img3.onload = function () {
+
img3.onload = function () {
img4.src = w4;
+
img4.src = w4;
img4.onload = function () {
+
img4.onload = function () {
img5.src = w5;
+
img5.src = w5;
img5.onload = function () {
+
img5.onload = function () {
console.log("finish");
+
var timer = setInterval(function () {
img6.src = w6;
+
redraw();
img6.onload = function () {
+
i += 0.00001;
var timer = setInterval(function () {
+
redraw();
+
i += 0.00001;
+
  
t1 = i + base_t1;
+
t1 = i + base_t1;
t2 = i + base_t2;
+
t2 = i + base_t2;
t3 = i + base_t3;
+
t3 = i + base_t3;
t4 = i + base_t4;
+
t4 = i + base_t4;
t5 = i + base_t5;
+
t5 = i + base_t5;
t6 = i + base_t6;
+
  
var img1_x = x_e * Math.cos(t1 * 180 * 2) + basex;
+
var img1_x = x_e * Math.cos(t1 * 180 * 2) + basex;
var img1_y = y_e * Math.sin(t1 * 180 * 4) + basey;
+
var img1_y = y_e * Math.sin(t1 * 180 * 4) + basey;
  
drawImg(imgWarpper1, img1_x, img1_y);
+
drawImg(imgWarpper1, img1_x, img1_y);
  
var img2_x = x_e * Math.cos(t2 * 180 * 2) + basex;
+
var img2_x = x_e * Math.cos(t2 * 180 * 2) + basex;
var img2_y = y_e * Math.sin(t2 * 180 * 4) + basey;
+
var img2_y = y_e * Math.sin(t2 * 180 * 4) + basey;
imgWarpper2.x = img2_x;
+
imgWarpper2.x = img2_x;
imgWarpper2.y = img2_y;
+
imgWarpper2.y = img2_y;
// imgWarpper2.w = i
+
// imgWarpper2.w = i
drawImg(imgWarpper2, img2_x, img2_y);
+
drawImg(imgWarpper2, img2_x, img2_y);
  
  
var img3_x = x_e * Math.cos(t3 * 180 * 2) + basex;
+
var img3_x = x_e * Math.cos(t3 * 180 * 2) + basex;
var img3_y = y_e * Math.sin(t3 * 180 * 4) + basey;
+
var img3_y = y_e * Math.sin(t3 * 180 * 4) + basey;
drawImg(imgWarpper3, img3_x, img3_y);
+
drawImg(imgWarpper3, img3_x, img3_y);
  
var img4_x = x_e * Math.cos(t4 * 180 * 2) + basex;
+
var img4_x = x_e * Math.cos(t4 * 180 * 2) + basex;
var img4_y = y_e * Math.sin(t4 * 180 * 4) + basey;
+
var img4_y = y_e * Math.sin(t4 * 180 * 4) + basey;
drawImg(imgWarpper4, img4_x, img4_y);
+
drawImg(imgWarpper4, img4_x, img4_y);
  
  
var img5_x = x_e * Math.cos(t5 * 180 * 2) + basex;
+
var img5_x = x_e * Math.cos(t5 * 180 * 2) + basex;
var img5_y = y_e * Math.sin(t5 * 180 * 4) + basey;
+
var img5_y = y_e * Math.sin(t5 * 180 * 4) + basey;
drawImg(imgWarpper5, img5_x, img5_y);
+
drawImg(imgWarpper5, img5_x, img5_y);
  
  
var img6_x = x_e * Math.cos(t6 * 180 * 2) + basex;
+
if (tipsWarpper.valid == true)
var img6_y = y_e * Math.sin(t6 * 180 * 4) + basey;
+
drawTips(tipsWarpper.x, tipsWarpper.y, 100, 100, tipsWarpper.msg);
drawImg(imgWarpper6, img6_x, img6_y);
+
// if (y > 400) {
console.log(tipsWarpper.valid)
+
// clearInterval(timer);
if (tipsWarpper.valid == true)
+
// }
drawTips(tipsWarpper.x, tipsWarpper.y, 100, 100, tipsWarpper.msg);
+
}, 50);
// if (y > 400) {
+
}
// clearInterval(timer);
+
// }
+
}, 50);
+
 
+
 
}
 
}
 
}
 
}
 
}
 
}
 
}
 
}
}
 
}
 
  
function contains(imgWarpper, x, y) {
+
function contains(imgWarpper, x, y) {
var img = imgWarpper.img;
+
var img = imgWarpper.img;
var rect = {};
+
var rect = {};
var drawWidth = img.width / 4;
+
var drawWidth = img.width / 4;
var drawHeight = img.height / 4;
+
var drawHeight = img.height / 4;
rect.x = imgWarpper.x;
+
rect.x = imgWarpper.x;
rect.y = imgWarpper.y;;
+
rect.y = imgWarpper.y;;
rect.x2 = drawWidth + rect.x;
+
rect.x2 = drawWidth + rect.x;
rect.y2 = drawHeight + rect.y;
+
rect.y2 = drawHeight + rect.y;
if (rect.x < x)
+
if (rect.x < x)
if (rect.x2 > x)
+
if (rect.x2 > x)
if (rect.y < y)
+
if (rect.y < y)
if (rect.y2 > y)
+
if (rect.y2 > y)
return true;
+
return true;
return false;
+
return false;
}
+
}
  
c.addEventListener('click', function (event) {
+
c.addEventListener('click', function (event) {
var x = event.clientX - c.getBoundingClientRect().left;
+
var x = event.clientX - c.getBoundingClientRect().left;
var y = event.clientY - c.getBoundingClientRect().top;
+
var y = event.clientY - c.getBoundingClientRect().top;
// console.log(x, y);
+
// console.log(x, y);
if (contains(imgWarpper1, x, y)) {
+
if (contains(imgWarpper1, x, y)) {
console.log("img 1");
+
console.log("img 1");
window.location.href = 'https://2018.igem.org/Team:NEU_China_B/background';
+
window.location.href = 'https://2018.igem.org/Team:NEU_China_B/background';
}
+
}
else if (contains(imgWarpper2, x, y)) {
+
else if (contains(imgWarpper2, x, y)) {
console.log("img 2");
+
console.log("img 2");
window.location.href = 'https://2018.igem.org/Team:NEU_China_B/Basic_Part';
+
window.location.href = 'https://2018.igem.org/Team:NEU_China_B/Basic_Part';
}
+
}
else if (contains(imgWarpper3, x, y)) {
+
else if (contains(imgWarpper3, x, y)) {
console.log("img3");
+
console.log("img3");
window.location.href = 'https://2018.igem.org/Team:NEU_China_B/Team';
+
window.location.href = 'https://2018.igem.org/Team:NEU_China_B/Team';
}
+
}
else if (contains(imgWarpper4, x, y)) {
+
else if (contains(imgWarpper4, x, y)) {
console.log("img4");
+
console.log("img4");
window.location.href = 'https://2018.igem.org/Team:NEU_China_B/InterLab';
+
window.location.href = 'https://2018.igem.org/Team:NEU_China_B/InterLab';
}
+
}
else if (contains(imgWarpper5, x, y)) {
+
else if (contains(imgWarpper5, x, y)) {
console.log("img5");
+
console.log("img5");
window.location.href = 'https://2018.igem.org/Team:NEU_China_B/Human_Practices';
+
window.location.href = 'https://2018.igem.org/Team:NEU_China_B/Human_Practices';
}
+
}
else if (contains(imgWarpper6, x, y)) {
+
});
window.location.href = 'https://2018.igem.org/Team:NEU_China_B/Human_Practices';
+
c.onmousemove = function (event) {
}
+
var x = event.clientX - c.getBoundingClientRect().left;
});
+
var y = event.clientY - c.getBoundingClientRect().top;
c.onmousemove = function (event) {
+
if (contains(imgWarpper1, x, y)) {
var x = event.clientX - c.getBoundingClientRect().left;
+
tipsWarpper.x = x;
var y = event.clientY - c.getBoundingClientRect().top;
+
tipsWarpper.y = y;
if (contains(imgWarpper1, x, y)) {
+
tipsWarpper.valid = true;
tipsWarpper.x = x;
+
tipsWarpper.msg = "Background";
tipsWarpper.y = y;
+
}
tipsWarpper.valid = true;
+
else if (contains(imgWarpper2, x, y)) {
tipsWarpper.msg = "Background";
+
console.log("img 2");
}
+
tipsWarpper.x = x;
else if (contains(imgWarpper2, x, y)) {
+
tipsWarpper.y = y;
console.log("img 2");
+
tipsWarpper.valid = true;
tipsWarpper.x = x;
+
tipsWarpper.msg = "Basic Part";
tipsWarpper.y = y;
+
}
tipsWarpper.valid = true;
+
else if (contains(imgWarpper3, x, y)) {
tipsWarpper.msg = "Basic Part";
+
console.log("img3");
}
+
tipsWarpper.valid = true;
else if (contains(imgWarpper3, x, y)) {
+
tipsWarpper.x = x;
console.log("img3");
+
tipsWarpper.y = y;
tipsWarpper.valid = true;
+
tipsWarpper.msg = "Team";
tipsWarpper.x = x;
+
}
tipsWarpper.y = y;
+
else if (contains(imgWarpper4, x, y)) {
tipsWarpper.msg = "Team";
+
console.log("img4");
}
+
tipsWarpper.x = x;
else if (contains(imgWarpper4, x, y)) {
+
tipsWarpper.y = y;
console.log("img4");
+
tipsWarpper.msg = "InterLab";
tipsWarpper.x = x;
+
tipsWarpper.valid = true;
tipsWarpper.y = y;
+
}
tipsWarpper.msg = "InterLab";
+
else if (contains(imgWarpper5, x, y)) {
tipsWarpper.valid = true;
+
console.log("img5");
}
+
tipsWarpper.x = x;
else if (contains(imgWarpper5, x, y)) {
+
tipsWarpper.y = y;
console.log("img5");
+
tipsWarpper.msg = "Human_Practices";
tipsWarpper.x = x;
+
tipsWarpper.valid = true;
tipsWarpper.y = y;
+
}
tipsWarpper.msg = "Human_Practices";
+
else {
tipsWarpper.valid = true;
+
tipsWarpper.valid = false;
}
+
}
else if (contains(imgWarpper6, x, y)) {
+
}
tipsWarpper.x = x;
+
</script>
tipsWarpper.y = y;
+
tipsWarpper.msg = "??????";
+
tipsWarpper.valid = true;
+
}
+
else {
+
console.log("six");
+
tipsWarpper.valid = false;
+
}
+
}
+
</script>
+
 
 
 
 

Revision as of 16:36, 17 October 2018

Ruby - Responsive Corporate Tempalte

Team:NEU_China_B

您的浏览器不支持 HTML5 canvas 标签。

Abstract


The role of L-lactate is not always beneficial for the yogurt fermentation due to excessive L-lactate can provide an optimized growth condition for yeast and mold. Therefore, it is important to detect the concentration of L-lactate. Acid-base titration is a common method for it, but this method is complicated and time-consuming. In order to monitor L-lactate quickly and conveniently, we designed a biosensor for detecting L-lactate concentration by using the lldPRD L-lactate operon and QS system in E. coli. One of these parts is able to induce the lldPRD genes expression, LuxS protein, in the presence of L-lactate. LuxS protein catalyzes the SAM cycle and produces a small signaling molecule AI-2 that motivates our second part promoter of LsrA&K to promote GFP expression. The optic fiber is able to detect the GFP signal and convert it into current. Simultaneously, the entire device container will be made by 3D printing.